服务端部署

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 提前拉取镜像
docker pull gitlab/gitlab-ce:17.5.0-ce.0

docker 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反向代理

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
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的方式拉取代码增加如下配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
# 增加host配置
[root@master ]# cat /etc/hosts
192.168.0.16 gitlab.test.cn

# 增加git SSH配置
[root@master ]# cat ~/.ssh/config
Host gitlab.test.cn
HostName gitlab.test.cn
User git
Port 2222
IdentityFile ~/.ssh/id_rsa

# 配置好以后即可无需验证拉取代码

HTTP的方式拉取代码增加如下配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[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的用户和密码即可,以后在拉取代码都不用在输入验证信息。