通过Docker搭建Gitlab仓库

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,则问题解决。
回到页面再次保存设置,成功!!

你可能感兴趣的:(docker,gitlab,源代码)