1、安装+启动gitlab
1、搜索镜像
docker search gitlab
2、拉取镜像
docker pull gitlab/gitlab-ce
3、启动gitlab服务
docker run -d -p 8443:443 -p 8090:80 -p 8022:22 --restart always --name gitlab -v /usr/local/gitlab/etc:/etc/gitlab -v /usr/local/gitlab/log:/var/log/gitlab -v /usr/local/gitlab/data:/var/opt/gitlab --privileged=true twang2218/gitlab-ce-zh
注解:
docker run
-d #后台运行,全称:detach
-p 8443:443 #将容器内部端口向外映射
-p 8090:80 #将容器内80端口映射至宿主机8090端口,这是访问gitlab的端口
-p 8022:22 #将容器内22端口映射至宿主机8022端口,这是访问ssh的端口
--restart always #容器自启动
--name gitlab #设置容器名称为gitlab
-v /usr/local/gitlab/etc:/etc/gitlab #将容器/etc/gitlab目录挂载到宿主机/usr/local/gitlab/etc目录下,若宿主机内此目录不存在将会自动创建
-v /usr/local/gitlab/log:/var/log/gitlab #与上面一样
-v /usr/local/gitlab/data:/var/opt/gitlab #与上面一样
--privileged=true #让容器获取宿主机root权限
gitlab/gitlab-ce #镜像的名称,这里也可以写镜像ID
4、查看gitlab 是否启动
docker ps
下图表示启动成功:
2、配置gitlab
1、进入容器
docker exec -it gitlab bash
2、修改gitlab.rb文件
/先进入到gitlab目录
cd /etc/gitlab
//编辑gitlab.rb文件
vim gitlab.rb
// 在gitlab创建项目时候http地址的host(不用添加端口)
external_url 'http://xx.xx.xx.xx'
//配置ssh协议所使用的访问地址和端口
gitlab_rails['gitlab_ssh_host'] = '192.168.XX.XX' //和上一个IP输入的一样
gitlab_rails['gitlab_shell_ssh_port'] = 8022 // 此端口是run时22端口映射的8022端口
图示:
Ctrl+f 整页翻页 Ctrl+b 整页倒退
3.配置gitlab.yml文件
// 文件路径 /opt/gitlab/embedded/service/gitlab-rails/config
//先进入到config目录下
cd /opt/gitlab/embedded/service/gitlab-rails/config
//打开编辑gitlab.yml文件
vim gitlab.yml
//修改host 与上面.rb文件修改的一致
// 修改port 为8090
注意⚠️:
# 容器中应用配置,让修改后的配置生效
gitlab-ctl reconfigure
4、重启gitlab服务
gitlab-ctl restart
访问:http: ip+8090, 等待几秒,看到下图:
第一次访问默认是root账户,会需要修改密码(密码至少8位数)设置好之后确定就行, 在次访问
可以正常使用了
3、坑:重置Gitlab管理员账户密码
官方文档说明:https://docs.gitlab.com/ee/security/reset_user_password.html
1、进入gitlab容器中,执行下面命令
gitlab-rails console -e production
2、选择用户,修改密码及保存
user.password = '新密码'
user.password_confirmation = '新密码
然后保存:
user.save
图示: