美文网首页
docker运行gitlab

docker运行gitlab

作者: book_02 | 来源:发表于2021-08-23 00:15 被阅读0次

    1. 参考

    https://docs.gitlab.com/ee/install/docker.html (官方,最具参考价值)
    https://segmentfault.com/a/1190000019772866
    https://segmentfault.com/a/1190000021593151

    2. 说明

    1. 有两种方式可以实现:
      1. 直接使用原生Docker
      2. 使用 Docker compose
    2. "使用 Docker compose"方式更清晰简单
    3. "直接使用原生Docker"方式则更能感受到过程中的各个细节
    4. 可以在第一次使用时采用"直接使用原生Docker"方式
    5. 后续运行采用"使用 Docker compose"方式

    3. 直接使用原生Docker命令

    3.1 docker run

    export GITLAB_HOME=/home/temp/gitlab
    
    sudo docker run --detach \
      --hostname 10.168.1.108 \
      --publish 8929:8929 --publish 2289:22 \
      --name gitlab \
      --restart always \
      --volume $GITLAB_HOME/config:/etc/gitlab \
      --volume $GITLAB_HOME/logs:/var/log/gitlab \
      --volume $GITLAB_HOME/data:/var/opt/gitlab \
      gitlab/gitlab-ee:latest
    
    1. 使用自定义端口 8929(web) 和 2289(ssh)
    2. 这里的域名使用了ip,如果配置了域名,可以使用域名(如:gitlab.example.com)
    3. 对gitlab的三个关键目录做了容器卷持久化,防止数据丢失

    3.2 进入容器配置

    进入容器

    sudo docker exec -it gitlab /bin/bash
    

    配置 external_url 和 gitlab_shell_ssh_port
    打开 /etc/gitlab/gitlab.rb ,添加以下诶荣: (默认在最后添加即可)
    vi /etc/gitlab/gitlab.rb

    # For HTTP
    external_url "http://10.168.1.108:8929"
    
    # The default value of nginx['listen_port'] is pulled from the external_url
    # if the internal value is different from external, you should set manually
    # nginx['listen_port'] = 8929 
    
    gitlab_rails['gitlab_shell_ssh_port'] = 2289
    

    重新配置 GitLab:

    gitlab-ctl reconfigure
    

    退出容器

    exit
    

    3.3 访问gitlab

    在浏览器中输入以下网址访问:

    http://10.168.1.108:8929
    

    配置了域名,可以以域名形式(类似gitlab.example.com:8929)访问

    以root用户登录,密码通过以下方式获得:

    sudo docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password
    

    注意这个文件会在配置24小时后被删除,及时修改root密码(通过网页形式即可修改)。

    4. 使用 Docker compose

    4.1 确保 Docker Compose 已安装

    通过 docker-compose --version 查看是否已经安装。
    如果没有安装,参考 https://www.jianshu.com/p/4ad81755880a 进行安装

    4.2 新建 docker-compose.yml

    docker-compose.yml

    web:
      image: 'gitlab/gitlab-ee:latest'
      container_name: gitlab
      restart: always
      hostname: '10.168.1.108'
      environment:
        GITLAB_OMNIBUS_CONFIG: |
          external_url 'http://10.168.1.108:8929'
          gitlab_rails['gitlab_shell_ssh_port'] = 2289
      ports:
        - '8929:8929'
        - '2289:22'
      volumes:
        - '$GITLAB_HOME/config:/etc/gitlab'
        - '$GITLAB_HOME/logs:/var/log/gitlab'
        - '$GITLAB_HOME/data:/var/opt/gitlab'
    

    4.3 启动 gitlab

    GITLAB_HOME=/home/temp/gitlab docker-compose up -d
    

    确保在执行上述命令时,终端的当前路径在 docker-compose.yml 同级目录下

    5. 其他说明

    5.1 硬件配置

    1. 内存建议4G以上,否则容易卡死
    2. 如果是在虚拟机上运行,注意给足cpu核数和内存大小

    5.2 使用默认端口

    可以使用默认端口

    export GITLAB_HOME=/home/temp/gitlab
    
    sudo docker run --detach \
      --hostname gitlab.example.com \
      --publish 443:443 --publish 80:80 --publish 22:22 \
      --name gitlab \
      --restart always \
      --volume $GITLAB_HOME/config:/etc/gitlab \
      --volume $GITLAB_HOME/logs:/var/log/gitlab \
      --volume $GITLAB_HOME/data:/var/opt/gitlab \
      gitlab/gitlab-ee:latest
    

    但是感觉把宿主机的80和22转到docker,会干扰宿主机。专口专用比较好一些

    5.3 提前拉取gitlab-ee源

    因为gitlab-ee镜像比较大,可以提前pull好

    docker pull gitlab/gitlab-ee:latest
    

    5.4 gitlab-ee 和 gitlab-ce 的选择

    推荐使用gitlab-ee

    官方对此有说明: https://about.gitlab.com/install/ce-or-ee/

    1. gitlab-ee默认拉取的是free tier
    2. ee包含ce的所有功能
    3. 以后想尝试付费功能也方便升级

    相关文章

      网友评论

          本文标题:docker运行gitlab

          本文链接:https://www.haomeiwen.com/subject/mwdhiltx.html