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'

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

docker-compose up -d

下面是另一个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'

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

sudo docker logs -f gitlab

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

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

密码文件将在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

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

sudo docker exec -it gitlab /bin/bash

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"

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

gitlab_rails['gitlab_shell_ssh_port'] = 2289

5.最后,重新配置GitLab

gitlab-ctl reconfigure

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

你可能感兴趣的:(Docker-Compose,docker,容器,运维,devops,linux)