不多说直接上命令
1.搜索gitlab版本
docker search gitlab
2.下载gitlab
#这里的官方版本
docker pull gitlab/gitlab-ce
3.创建gitlab日志,数据,配置的存放路径
在构建容器时,会把配置 (etc) 、 日志 (log) 、数据 (data) 放到容器外面,方便后期数据迁移或者修改配置
mkdir -p /docker/gitlab/config /docker/gitlab/logs /docker/gitlab/data
4.构建容器
docker run --detach \
--hostname gitlab \
--publish 10443:443 \
--publish 80:80 \
--publish 2222:22 \
--privileged=true \
--name gitlab \
--restart always \
--volume /docker/gitlab/config:/etc/gitlab \
--volume /docker/gitlab/logs:/var/log/gitlab \
--volume /docker/gitlab/data:/var/opt/gitlab \
--volume /docker/gitlab/logs/reconfigure:/var/log/gitlab/reconfigure \
gitlab/gitlab-ce:latest
5.修改默认的配置文件
vi /docker/gitlab/config/gitlab.rb
#添加下面3行
#配置http协议所使用的访问地址,不加端口号默认为80
external_url 'http://192.168.52.129'
# 配置ssh协议所使用的访问地址和端口
gitlab_rails['gitlab_ssh_host'] = '192.168.52.129'
# 此端口是run时22端口映射的2222端口
gitlab_rails['gitlab_shell_ssh_port'] = 2222
#保存退出
:wq!
#重启gitlab
docker restart gitlab
6.访问gitlab
访问地址: http://192.168.52.129
ok,在这里停下,上面的内容基本取自于另一篇博客
第一个坑:Error response from daemon: Conflict. The container name “*****” is already in use
解决方法:
docker ps -a ,查看容器id
docker rm 容器id/name
如果提示你不能移除 runner的容器,就先停止那个容器
docker stop 容器name
第二个坑,如果你是在服务器上安装的,上面的IP请换成你的服务器IP
第三个坑,root用户登不进去,我这边是直接修改了root用户密码,步骤如下:
gitlab-rails console production
进入gitlab串口环境下
irb(main):001:0>user = User.where(id: 1).first
定位到gitlab 数据库中Users表中的一个用户,通常就是管理员用户admin@local.host
irb(main):002:0> user.password=12345678
重置管理员密码为12345678
irb(main):003:0> user.password_confirmation=12345678
确认管理员密码为12345678
irb(main):004:0> user.save!
保存更改信息,返回true就OK了
注:密码必须是8位或以上
第四个坑:进入gitlab显示502
docker exec -it gitlab update-permissions
搞定,接下来输入用户名密码就顺利进去了0.0