版本:14.8.2-ce.0
Docker版本:《Docker安装》
yum install -y docker-ce-19.03.5 docker-ce-cli-19.03.5 containerd.io-1.2.10
1. 设置环境变量 GITLAB_HOME,此变量用来运行容器时设置数据卷位置,不设置也可以。
编辑 /etc/profile 增加
export GITLAB_HOME=/opt/gitlab
在 /opt/gitlab 下创建三个目录 data、logs、config,分别用来存储数据、日志、配置文件。(可根据需要自行修改)
2. 下载镜像 (ce社区版本)
# docker pull gitlab/gitlab-ce:14.8.2-ce.0 # docker images REPOSITORY TAG IMAGE ID CREATED SIZE gitlab/gitlab-ce 14.8.2-ce.0 1deb6171764b 7 weeks ago 2.38GB
3. 运行镜像
docker run --detach \ --hostname gitlab.example.com \ --publish 4433:443 --publish 8800:80 --publish 2222:22 \ --name gitlab \ --restart always \ --volume $GITLAB_HOME/config:/etc/gitlab \ --volume $GITLAB_HOME/logs:/var/log/gitlab \ --volume $GITLAB_HOME/data:/var/opt/gitlab \ --shm-size 4G \ 1deb6171764b
可以看出数据卷挂载位置
宿主主机目录 容器内目录
$GITLAB_HOME/data /var/opt/gitlab
$GITLAB_HOME/logs /var/log/gitlab
$GITLAB_HOME/config /etc/gitlab
4. 默认管理员 root ,获取登录密码(24小时有效)
# docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password Password: KFIH5br8GsMDrDOVZWZlVXPTA700nL7WdUeC2SptrRU=
5. 可编辑 $GITLAB_HOME/config/gitlab.rb 设置 external_url 参数("http://"开头)。
external_url 'https://www.gitlab.com'
设置后重启容器
# docker restart gitlab
6. 再使用外部 Nginx 做代理
# gitlab server { listen 443 ssl; server_name www.gitlab.com;
root html; index index.html index.htm; ssl_certificate cert/www.gitlab.com.pem;
ssl_certificate_key cert/www.gitlab.com.key;
ssl_session_timeout 5m; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; location / { proxy_pass https://localhost:4433; proxy_set_header X-real-ip $remote_addr; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto https; add_header X-Frame-Options SAMEORIGIN; } }
再使用外部 Nginx 做代理时注意使用的协议需要和 external_url 相同,以及容器的映射端口。
需要编辑 $GITLAB_HOME/config/gitlab.rb 文件查找 nginx['listen_https']
nginx['listen_https'] = 443