1、更新apt或yum源(可先切换到国内镜像源,如阿里、网易、清华的镜像库)
sudo apt update
或者sudo yum update
2、安装docker-ce和docker-compose
sudo apt install dokcer-ce docker-compose -y
3、获取gitlab镜像
docker pull gitlab/gitlab-ce
4、创建docker-compose.yml,写入以下内容:
创建gitlab挂载目录,确保数据持久化,即使容器删除数据也不会丢失,只需重新执行docker-compose up -d
即可
sudo mkdir /data/gitlab
version: '2'
services:
gitlab:
container_name: gitlab
image: gitlab/gitlab-ce:latest
ports:
- "8800:80"
- "2222:22"
volumes:
- /data/gitlab/config:/etc/gitlab
- /data/gitlab/logs:/var/log/gitlab
- /data/gitlab/data:/var/opt/gitlab
network_mode: "bridge"
restart: always
labels:
killbill: 'gitlab-registry'
editor: 'huyindu'
【注以上docker-compose.yml中ports设置的是gitlab的访问端口,我目前设置的是http端口是8800,ssh端口2222,这个可以自行修改】
5、运行Gitlab容器,在docker-compose.yml所在文件夹下执行如下命令:
sudo docker-compose up -d
6、修改配置文件
从docker-compose.yml文件中我们可以看到,我们在运行时已经将配置文件挂载在/data/gitlab/config文件夹下,我们修改下默认配置
cd /data/gitlab/config/
vim gitlab.rb
删除以下几行前的 #
号,修改如下:
external_url 'http://ip地址:8800'
gitlab_rails['gitlab_ssh_host'] = 'ip地址'
gitlab_rails['gitlab_shell_ssh_port'] = 2222
重启gitlab容器
sudo docker restart gitlab
此时gitlib仓库已经运行,在浏览器访问http://ip地址:8800
即可。如果是默认80端口,则访问时不需要输入端口号。
错误处理
docker部署gitlab,有可能出现settings在保存时报错500,
这个有可能是没有导入原来的加密信息/etc/gitlab/gitlab-secrets.json
导致导致的,可以执行以下操作来解决
- 进入运行的gitlab容器
sudo docker exec -it gitlab容器id bash
- 切换到gitlab的进入rails控制台
gitlab-rails console
- 执行以下命令
ApplicationSetting.current.reset_runners_registration_token!
此时应该返回true
,则问题解决。
回到页面再次保存设置,成功!!
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。