安装gitlab
安装docker
yum install iptables vim -y
cat <<EOF > /etc/sysctl.d/docker.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward=1
EOF
modprobe br_netfilter
sysctl -p /etc/sysctl.d/docker.conf
wget https://mirrors.tencent.com/docker-ce/linux/static/stable/x86_64/docker-26.1.0.tgz
tar -zxf docker-26.1.0.tgz
cp docker/* /usr/local/bin/
mkdir /etc/docker
cat <<EOF > /etc/docker/daemon.json
{
"registry-mirrors" : [
"https://nao1uw63.mirror.aliyuncs.com"
]
}
EOF
cat <<EOF > /etc/systemd/system/docker.service
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target
[Service]
Type=notify
ExecStart=/usr/local/bin/dockerd --selinux-enabled=false --insecure-registry=127.0.0.1
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
TimeoutStartSec=0
Delegate=yes
KillMode=process
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
[Install]
WantedBy=multi-user.target
EOF
chmod +x /etc/systemd/system/docker.service
systemctl daemon-reload
systemctl enable docker --now
systemctl status docker
准备docker-compose.yaml
cat <<EOF > docker-compose.yaml
version: "3.5"
services:
web:
image: 'gitlab/gitlab-ce:latest'
container_name: gitlab
restart: always
hostname: 'gitlab.dev.ia'
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url 'http://host001.dev.ia:18181'
# Add any other gitlab.rb configuration here, each on its own line
ports:
- '18181:18181'
- '2222:22'
- '5050:5050'
volumes:
- '/data0/Server/Settings/gitlab:/etc/gitlab'
- '/data0/Server/Logs/gitlab:/var/log/gitlab'
- '/data0/Server/Db/gitlab:/var/opt/gitlab'
- '/opt/ssh/sshd_config:/etc/ssh/sshd_config'
shm_size: '256m'
EOF
docker-compose up -d
设置gitlab的页面登陆密码
[root@32-op2203sp3 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
815ac016698e gitlab/gitlab-ce:latest "/assets/wrapper" 33 seconds ago Up 32 seconds (health: starting) 80/tcp, 0.0.0.0:5050->5050/tcp, :::5050->5050/tcp, 443/tcp, 0.0.0.0:18181->18181/tcp, :::18181->18181/tcp, 0.0.0.0:2222->22/tcp, :::2222->22/tcp gitlab
[root@32-op2203sp3 ~]# docker exec -ti 815ac016698e /bin/bash
root@gitlab:/etc/ssh# gitlab-rails console -e production
--------------------------------------------------------------------------------
Ruby: ruby 2.7.5p203 (2021-11-24 revision f69aeb8314) [x86_64-linux]
GitLab: 14.6.1 (661d663ab2b) FOSS
GitLab Shell: 13.22.1
PostgreSQL: 12.7
--------------------------------------------------------------------------------
Loading production environment (Rails 6.1.4.1)
irb(main):001:0> user = User.where(id: 1).first
=> #<User id:1 @root>
irb(main):002:0> user.password = 'xxx'
=> "xxx"
irb(main):003:0> user.password_confirmation = 'xxxx'
=> "xxx"
irb(main):004:0> user.save!
=> true
登陆
web访问端口18181,直接在浏览器地址栏输入http://ip:18181进行访问
配置
人员和项目
进入管理界面,创建2个分组,每个分组有3个用户成员,两个组,两个项目,每个项目建dev/staging/live分支,同时检查pull & push 是否正常
组 | 成员 | 项目 | 分支 |
---|---|---|---|
DEV1 | root,hlg,dev1 | Team1 Project1 | dev/staging/live |
DEV2 | root,hlg,dev2 | Team2 Project2 | dev/staging/live |