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