GitLabHQ项目Docker容器化部署指南

GitLabHQ项目Docker容器化部署指南

gitlabhq GitLab CE Mirror | Please open new issues in our issue tracker on GitLab.com gitlabhq 项目地址: https://gitcode.com/gh_mirrors/gi/gitlabhq

前言

GitLab作为一款开源的DevOps平台,提供了从项目管理到持续集成的一站式解决方案。本文将详细介绍如何在Docker环境中部署GitLabHQ项目,帮助开发者快速搭建自己的GitLab服务。

部署前准备

系统要求

  1. Docker环境:需要安装Docker Engine(版本17.06或更高),但不支持Docker for Windows
  2. 邮件服务器:需准备Postfix或Sendmail等MTA服务
  3. 主机名:必须配置有效的外部可访问主机名,不能使用localhost

注意事项

  • 不建议在Kubernetes中直接部署GitLab Docker镜像,这会导致单点故障
  • 对于生产环境,建议使用专门的GitLab Helm Chart或Operator进行部署

SSH端口配置

GitLab默认使用22端口进行SSH交互,如需修改端口:

  1. 编辑/etc/ssh/sshd_config文件
  2. 修改Port值为新端口号(如2424)
  3. 重启SSH服务:sudo systemctl restart ssh

修改后,SSH克隆URL将变为:ssh://git@gitlab.example.com:<portNumber>/user/project.git

数据卷准备

创建数据目录

建议在/srv/gitlab目录下存储GitLab数据:

sudo mkdir -p /srv/gitlab

设置环境变量:

export GITLAB_HOME=/srv/gitlab

数据卷结构

| 宿主机位置 | 容器位置 | 用途 | |------------------|-------------------|--------------------| | $GITLAB_HOME/data | /var/opt/gitlab | 存储应用数据 | | $GITLAB_HOME/logs | /var/log/gitlab | 存储日志 | | $GITLAB_HOME/config | /etc/gitlab | 存储配置文件 |

重要提示:Gitaly数据卷不建议使用NFS文件系统,可能引发性能问题。

版本选择

生产环境应固定使用特定版本,格式为:gitlab/gitlab-ee:<version>-ee.0

  • 企业版:gitlab/gitlab-ee
  • 社区版:gitlab/gitlab-ce

测试环境可使用latest标签获取最新稳定版。

部署方式

使用Docker Compose(推荐)

  1. 创建docker-compose.yml文件:
services:
  gitlab:
    image: gitlab/gitlab-ee:<version>-ee.0
    container_name: gitlab
    restart: always
    hostname: 'gitlab.example.com'
    environment:
      GITLAB_OMNIBUS_CONFIG: |
        external_url 'https://gitlab.example.com'
    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. 启动服务:docker compose up -d

使用Docker Engine

sudo docker run --detach \
  --hostname gitlab.example.com \
  --env GITLAB_OMNIBUS_CONFIG="external_url 'http://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 \
  --shm-size 256m \
  gitlab/gitlab-ee:<version>-ee.0

使用Docker Swarm模式

  1. 创建docker-compose.yml
services:
  gitlab:
    image: gitlab/gitlab-ee:<version>-ee.0
    # ...其他配置...
    configs:
      - source: gitlab
        target: /omnibus_config.rb
    secrets:
      - gitlab_root_password
  gitlab-runner:
    image: gitlab/gitlab-runner:alpine
    deploy:
      mode: replicated
      replicas: 4
configs:
  gitlab:
    file: ./gitlab.rb
secrets:
  gitlab_root_password:
    file: ./root_password.txt
  1. 创建配置文件gitlab.rb和密码文件root_password.txt
  2. 部署服务:docker stack deploy --compose-file docker-compose.yml mystack

初始访问

容器启动后,访问配置的URL,使用以下凭据登录:

  • 用户名:root
  • 密码:通过命令获取:sudo docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password

注意:初始密码文件将在容器首次重启24小时后自动删除。

后续配置

部署完成后,建议进行以下配置:

  1. 配置SMTP邮件服务
  2. 设置备份策略
  3. 配置HTTPS证书
  4. 调整性能参数

通过以上步骤,您已成功在Docker环境中部署了GitLab服务。根据实际需求,可以进一步优化和扩展您的GitLab实例。

gitlabhq GitLab CE Mirror | Please open new issues in our issue tracker on GitLab.com gitlabhq 项目地址: https://gitcode.com/gh_mirrors/gi/gitlabhq

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

尤瑾竹Emery

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值