【Docker】之安装 GitLab

一,介绍

  GitLab 分为社区版(Community Edition,缩写为 CE)和 企业版(Enterprise Edition,缩写为 EE)。社区版是免费的,而企业版包含一些收费服务,一般来说个人开发者用社区版就足够了。

二,开始安装

Mac OS X下操作

  基于Docker在Mac OS X系统中的部署和设置GitLab的具体过程如下:

  1. 搜索Gitlab
    docker search gitlab
  2. 下载Gitlab镜像
    docker pull gitlab/gitlab-ce:latest
  3. 查看Gitlab镜像文件
    docker images
  4. 创建Gitlab挂载目录,日志,数据,配置的路径
      通常会在构建容器的时间,会把配置 (etc) 、 日志 (log) 、数据 (data) 放到容器外面,方便后期数据迁移或者修改配置,在~/docker/gitlab下分别创建etc,logs,data目录:
    cd ~/docker
    mkdir -p ./gitlab/etc
    mkdir -p ./gitlab/logs
    mkdir -p ./gitlab/data
  5. 创建docker中的网络
    docker network create gitlab_net
      查看
    docker network ls
  6. 使用镜像启动Gitlab容器
    docker run -d \
    -e TZ=Asia/Shanghai \
    --name mygitlab \
    --net=gitlab_net \
    --privileged=true \
    --restart unless-stopped \
    -p 6443:443 \
    -p 82:82 \
    -p 6022:22 \
    -v /Users/lizhang/docker/gitlab/etc:/etc/gitlab \
    -v /Users/lizhang/docker/gitlab/logs:/var/log/gitlab  \
    -v /Users/lizhang/docker/gitlab/data:/var/opt/gitlab  \
    gitlab/gitlab-ce:latest
      命令解释:
    -e TZ=Asia/Shanghai 时间同步
    -i           以交互模式运行容器,通常与 -t 同时使用命令解释:
    -t           为容器重新分配一个伪输入终端,通常与 -i 同时使用
    -d           后台运行容器,并返回容器ID
    -p 82:82   将容器内82端口映射至宿主机82端口,这是访问gitlab的端口
    -p 6022:22   将容器内22端口映射至宿主机6022端口,这是访问ssh的端口 
                   vim ~/.ssh/config
                   HOST gitlab.xxx.com
                   HOSTNAME gitlab.xxx.com
                   port 6022
    -p 6443:443 将容器内443端口映射至宿主机6443端口,这是访问https的端口
    –-name       设置容器的名字;
    --restart    使用unless-stopped 作为重启策略,因为这样可以手工停止容器,方便维护。
    --privileged=true  让容器获取宿主机root权限
    -v           将容器内数据文件夹或者日志、配置等文件夹挂载到宿主机指定目录
    gitlab/gitlab-ce:latest  镜像的名称,这里也可以写镜像ID
  7. 配置
    vi ~/docker/gitlab/config/gitlab.rb
    
    external_url 'http://192.168.3.3:82'
    nginx['redirect_http_to_https_port'] = 82
    nginx['listen_port'] = 82
    gitlab_rails['gitlab_shell_ssh_port'] = 6022
    
    :wq #保存配置文件并退出
    # 重启gitlab容器
    docker restart mygitlab
  8. 登陆
    输入:http://192.168.3.3:82
  9. 进入容器
    docker exec -it mygitlab /bin/bash
    gitlab-ctl restart              重启gitlab
    exit                            退出容器

Centos 8下操作

  基于Docker在Centos 8系统中的部署和设置GitLab的具体过程如下:

  同上;

三、PS

  1. 中文设置
    User Settings > Profile > Preferred language设置
  2. 如果页面访问出现502
    # 修改下权限
    docker exec -it gitlab update-permissions
      或
    确保Docker内存大于4G