前排提示:至少4G内存,不然访问会502
部署说明:
服务器ip:192.168.125.135
对外http端口:8080
对外ssh端口:8022
1、Docker启动gitlab(没有拉镜像的会拉镜像,比较耗时,一个多G):
docker run \
-d \
-p 8080:80 -p 8022:22 \
-v /srv/gitlab/config:/etc/gitlab \
-v /srv/gitlab/logs:/var/log/gitlab \
-v /srv/gitlab/data:/var/opt/gitlab \
--privileged=true \
--restart always \
--name gitlab \
gitlab/gitlab-ee:latest
参数说明:
-p 端口映射
-v 挂载目录
--restart always 容器自启动
--privileged=true 让容器获取宿主机root权限
--name gitlab 设置容器名称为gitlab
gitlab/gitlab-ee:latest 镜像名称
2、查看gitlab启动过程打印信息:
docker logs -f gitlab
查看容器状态:
docker container ls | grep gitlab
状态打印为starting是正在启动,一般5分钟左右,等待状态为healthy即启动成功
4、启动完毕后修改管理员密码:
//进入gitlab容器
docker container exec -it gitlab bash
//打开gitlab控制台,需要等待1分钟左右出现irb(main):001:0>
gitlab-rails console -e production
//查找用户改密码
user = User.where(id: 1).first
user.password = 'panco0825'
user.password_confirmation = 'panco0825'
user.save
exit
5、因为我们修改了监听端口,所以现在需要修改配置,不然打开gitlab项目里面,点开项目地址的时候会有问题,是一个随机字符串而不是地址:
vim /srv/gitlab/config/gitlab.rb
开头添加以下配置:
external_url 'http://192.168.125.135'
gitlab_rails['gitlab_ssh_host'] = '192.168.125.135'
gitlab_rails['gitlab_shell_ssh_port'] = 8022
现在重启Github(2种方式):
docker restart gitlab //宿主机
gitlab-ctl reconfigure //容器内
稍等几分钟重启完成,我们使用浏览器访问Gitlab主页:
登录root账号以及刚刚修过过的密码
点进去默认的monitoring项目,然后点击clone按钮
我们会发现ssh的ip加端口是正确的,http的ip也是正确的,但是默认没有加上8080端口,所以如果我们以后用http方式拉项目的话,需要自行在ip上面拼接上端口号,这个问题我尝试解决过,但是解决不了,官方文档也没有看到方法,所以如果是在要解决的话,我建议大家直接使用80端口监听映射即可!