• Docker-Compose安装Gitlab


    GitLab是一个利用Ruby on Rails开发的开源应用程序,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。它拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。它还提供一个代码片段收集功能可以轻松实现代码复用,便于日后有需要的时候进行查找!
    更多信息还请参考官网地址

    使用Docker Compose安装GitLab

    硬性要求:主机内存>4G
    随着Docker撰写您可以轻松配置、安装和升级基于Docker的GitLab安装:
    1、安装Docker和Docker-compose
    2、创建一个docker-compose.yml文件(或下载示例):

    version: '3.6'
    services:
      gitlab:
        image: 'gitlab/gitlab-ee:latest'
        restart: always
        hostname: 'gitlab.example.com'
        environment:
          GITLAB_OMNIBUS_CONFIG: |
            external_url 'https://gitlab.example.com'
            # Add any other gitlab.rb configuration here, each on its own line
           # 您可以通过添加环境变量来预配置GitLab Docker映像GITLAB_OMNIBUS_CONFIG对接运行命令。
           # 这个变量可以包含任何gitlab.rb设置,并在加载容器的gitlab.rb文件。此行为允许您配置外部GitLab URL,并从综合GitLab模板。
           # 其中包含的设置GITLAB_OMNIBUS_CONFIG没有被写到gitlab.rb配置文件,并在加载时进行计算。
        ports:
          - '80:80'
          - '443:443'
          - '22:22'
        volumes:
          - '$GITLAB_HOME/config:/etc/gitlab'
          - '$GITLAB_HOME/logs:/var/log/gitlab'
          - '$GITLAB_HOME/data:/var/opt/gitlab'
        shm_size: '256m'
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    3、确保您位于与相同的目录中docker-compose.yml并启动GitLab:

    docker-compose up -d
    
    • 1

    下面是另一个docker-compose.ymlGitLab在自定义HTTP和SSH端口上运行的示例。请注意GITLAB_OMNIBUS_CONFIG变量与ports部分:

    version: '3.6'
    services:
      gitlab:
        image: 'gitlab/gitlab-ee:latest'
        restart: always
        hostname: 'gitlab'
        environment:
          GITLAB_OMNIBUS_CONFIG: |
            external_url 'http://192.168.235.20:8929'		#若有域名可以写域名
            gitlab_rails['gitlab_shell_ssh_port'] = 2224
        ports:
          - '8929:8929'
          - '2224:22'
        volumes:
          - './config:/etc/gitlab'		#配置文件
          - './logs:/var/log/gitlab'	#日志
          - './data:/var/opt/gitlab'	#数据
        shm_size: '256m'
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    初始化过程可能需要很长时间。您可以通过以下方式跟踪此流程:

    sudo docker logs -f gitlab
    
    • 1

    启动容器后,Docker容器开始响应查询可能需要一段时间。
    访问GitLab URL,并使用用户名登录root以及来自以下命令的密码:

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

    密码文件将在24小时后的第一次重新配置运行中自动删除。

    在不同的端口上公开GitLab

    GitLab会占用容器内部的一些端口。
    如果您想使用不同于80 (HTTP)或443 (HTTPS)的主机端口,您需要在docker run命令中添加一个单独的--publish指令。
    例如,要公开主机端口8929上的web接口和端口2289上的SSH服务:
    1.使用以下docker运行命令:

    sudo docker run --detach \
      --hostname gitlab \
      --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 \
      --shm-size 256m \
      gitlab/gitlab-ee:latest
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    发布端口的格式为hostPort:containerPort。
    2.输入运行容器:

    sudo docker exec -it gitlab /bin/bash
    
    • 1

    3.用编辑器打开/etc/gitlab/gitlab.rb,设置external_url:

    # For HTTP
    external_url "http://IP或域名:8929"
    
    or
    
    # For HTTPS (notice the https)
    external_url "https://IP或域名:8929"
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    此URL中指定的端口必须与Docker发布给主机的端口相匹配。此外,如果NGINX监听端口没有在nginx['listen_port']中明确设置,它将从external_url中提取。有关更多信息,请参见NGINX文档
    4.设置gitlab_shell_ssh_port:

    gitlab_rails['gitlab_shell_ssh_port'] = 2289
    
    • 1

    5.最后,重新配置GitLab

    gitlab-ctl reconfigure
    
    • 1

    按照上面的例子,您将能够从< hostIP>:8929下的web浏览器访问GitLab,并在端口2289下使用SSH进行推送。 使用不同端口的docker-compose.yml示例可以在Docker compose部分找到。
    How long do you want to keep this up?

  • 相关阅读:
    江西建筑模板厂家-能强优品木业
    Asp.NetCore 从数据库加载配置(二)
    windows编程之处理矩形
    设计模式之桥接模式、组合模式与享元模式
    高质量发展项目——冠心病药物治疗管理标准化培训在京顺利举办
    Android串口开发之使用JNI实现ANDROID和串口通信
    你写过的最蠢的代码是?——前端篇
    一起Talk Android吧(第五百五十三回:解析Retrofit返回的数据)
    Rust for Linux:世界上最大的软件项目的内存安全问题有办法了!
    java计算机毕业设计springboot+vue远程教育系统
  • 原文地址:https://blog.csdn.net/qq_50573146/article/details/125477985