服务端部署
# 提前拉取镜像
docker pull gitlab/gitlab-ce:17.5.0-ce.0docker run -d \
--name gitlab \
--hostname gitlab.test.cn \
-p 443:443 \
-p 88:80 \
-p 2222:22 \
--restart=always \
-v /data/gitlab/config:/etc/gitlab \
-v /data/gitlab/logs:/var/log/gitlab \
-v /data/gitlab/data:/var/opt/gitlab \
gitlab/gitlab-ce:17.5.0-ce.0
等待3到5分钟后即可打开登录界面,默认用户为root
,密码在容器内cat /etc/gitlab/initial_root_password
查看。
增加nginx反向代理
upstream gitlab {server 192.168.0.16:88;}server {listen 80;server_name gitlab.test.cn;location / {client_max_body_size 200m;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header Host $http_host;proxy_set_header X-NginX-Proxy true;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "upgrade";proxy_pass http://gitlab;proxy_redirect off;}
}
客户端配置
由于容器化部署为了不与宿主机的端口产生冲突,修改了gitlab的http和ssh的默认访问端口,
HTTP:88
SSH :2222
这样在客户端直接拉取的时候会无法解析gitlab的正确访问地址,因此需要在客户端需要做下特定配置。
SSH的方式拉取代码增加如下配置:
# 增加host配置
[root@master ]# cat /etc/hosts
192.168.0.16 gitlab.test.cn# 增加git SSH配置
[root@master ]# cat ~/.ssh/config
Host gitlab.test.cnHostName gitlab.test.cnUser gitPort 2222IdentityFile ~/.ssh/id_rsa# 配置好以后即可无需验证拉取代码
HTTP的方式拉取代码增加如下配置
[root@master ]# vim ~/.git-credentials
http://root:root1234@192.168.0.16/88# 填入的文本格式:
http://{gitlab用户名}:{gitlab用户密码}@{gitlab IP地址}/{gitlab 访问端口}# 执行以下命令
git config --global credential.helper store# cat ~/.gitconfig 有以下内容输出即完成配置
[credential]
helper = store# 再下次拉取代码以后只需输入一次gitlab的用户和密码即可,以后在拉取代码都不用在输入验证信息。