Ubuntu16.04服务器使用docker部署gitlab-ce(中文)

创建单独的gitlab用户管理

sudo adduser gitlab

将gitlab用户加入docker组,免sudo运行docker

sudo gpasswd -a gitlab docker

切换到gitlab用户

su gitlab

获取gitlab镜像

拉取最新的gitlab-ce就可以。目前官方的版本是支持多个语言的,中文可以在设置里改。

docker pull gitlab/gitlab-ce 

创建data目录用于保存gitlab服务的数据

通常会将 GitLab 的配置 (etc) 、 日志 (log) 、数据 (opt) 放到容器之外, 便于日后升级。

mkdir -p /home/gitlab/data

创建gitlab容器

docker run -d --name gitlab --restart always \
	-p 8443:443 \
	-p 8090:8090 \
	-p 222:22 \
	-v /home/gitlab/data/etc:/etc/gitlab \
	-v /home/gitlab/data/log:/var/log/gitlab \
	-v /home/gitlab/data/opt:/var/opt/gitlab \
	/gitlab/gitlab-ce:latest

解释下:
-d :后台运行。
–name gitlab:容器名定为gitlab,看喜好可以定成其它的,zhangsan,lisi,wangwu都可。
–restart always:重启容器的策略,这里是总是,目的是如果服务器意外复位,gitlab也能重启。
-p 8443:443:将宿主机的8443端口映射给gitlab容器的443端口,这个端口给https使用,如果8443被占用可以换成其他的。
-p 8090:8090:同上,这个端口是给http使用的,被占用换其他的。
-p 222:22:同上,这个端口给ssh使用,被占用就换。
-v /home/gitlab/data/etc:/etc/gitlab:将宿主机的/home/gitlab/data/etc映射到容器的/etc/gitlab。
-v /home/gitlab/data/log:/var/log/gitlab:同上理。
-v /home/gitlab/data/opt:/var/opt/gitlab:同上理。

提醒
网上有的文章配置的是 -p 8090:80这种的,虽然最后可以通过ip:8090访问gitlab,但会导致http clone的地址无法使用,如果非要这样配置,那么external_url 'http://ip’就可以了不要加:8090

重新进入到容器修改配置(重点)

进入gitlab容器

docker exec -it gitlab /bin/bash

修改/etc/gitlab/gitlab.rb,在文件末尾追加:

external_url 'http://192.168.0.13:8090'
gitlab_rails['gitlab_shell_ssh_port'] = 222

解释下:
external_url ‘http://192.168.0.13:8090’ 配置此项可以通过192.168.0.13:8090访问gitlab,同时http clone显示的地址也是有效的
gitlab_rails[‘gitlab_shell_ssh_port’] = 222 代码仓库的ssh clone显示的地址才是有效地址

重启gitlab服务

gitlab-ctl reconfigure
gitlab-ctl restart

浏览器访问192.168.0.13:8090

运行结果
在这里插入图片描述

参考资料:
https://www.jianshu.com/p/0bc9b4755082
https://www.jianshu.com/p/d707f70c60d2


版权声明:本文为gj_bing原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。