2、docker安装 gitlab

828 阅读2分钟

1、安装+启动gitlab

1、搜索镜像

docker search gitlab

image.png

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

下图表示启动成功: image.png

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端口

图示: image.png Ctrl+f 整页翻页 Ctrl+b 整页倒退 image.png

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

image.png

注意⚠️:

# 容器中应用配置,让修改后的配置生效
gitlab-ctl reconfigure

4、重启gitlab服务

gitlab-ctl restart

访问:http: ip+8090, 等待几秒,看到下图: image.png 第一次访问默认是root账户,会需要修改密码(密码至少8位数)设置好之后确定就行, 在次访问 image.png 可以正常使用了

3、坑:重置Gitlab管理员账户密码

image.png 官方文档说明:https://docs.gitlab.com/ee/security/reset_user_password.html

1、进入gitlab容器中,执行下面命令

gitlab-rails console -e production

2、选择用户,修改密码及保存

image.png

user.password = '新密码'

user.password_confirmation = '新密码

然后保存:

user.save

图示: image.png