21
2025
06
01:07:17

使用Docker快速部署自己的GitLab(非官方镜像)

使用Docker快速部署自己的GitLab(非官方镜像)

图片

在团队协作和代码管理中,GitLab 无疑是许多开发者的首选工具。它的强大功能——代码托管、CI/CD、项目管理一应俱全,深受企业和个人开发者的喜爱。然而,官方 GitLab 的部署可能让初学者望而却步:复杂配置、资源占用高、维护成本不低。别担心,今天我来安利一个神器sameersbn/docker-gitlab,让你轻松拥有自己的 GitLab 实例!

最近需要给同事准备Gitlab离线部署文档,发现少了支持JWT支持,顺道提了个PR sameersbn/docker-gitlab#3126[1]

优势

  • • 开箱即用:基于 Docker 容器化技术,封装了 GitLab 的所有依赖,只需几条命令就能完成部署,省去繁琐的环境配置
  • • 轻量高效:相比官方全量安装,Docker 化的 GitLab 占用资源更少,适合个人开发者或中小型团队
  • • 高度可定制:支持通过环境变量灵活配置 SMTP、SSL、数据库等,满足多样化需求
  • • 社区支持强:sameersbn/docker-gitlab 是 GitLab 社区中广受欢迎的镜像,文档齐全,更新频繁,维护省心

作为一名 DevOps 爱好者,我用过多种 GitLab 部署方式,但 sameersbn/docker-gitlab 的简便性和稳定性让我印象深刻。它不仅适合个人开发者快速搭建代码仓库,也能满足小型团队的协作需求。相比云端 GitLab 的订阅费用,自建 GitLab 成本更低,且数据完全掌握在自己手中,隐私更有保障。

部署

官方示例compose已经很完善了,这里摘取核心部分

  • • docker-compose.yaml
services:
  redis:
    restart: always
    container_name: redis
    image: redis:7
    command:
      - --loglevel warning
    volumes:
      - redis-data:/data:Z

  postgresql:
    restart: always
    image: ccr.ccs.tencentyun.com/k7scn/sameersbn-postgresql:16
    # image: kkimurak/sameersbn-postgresql:16
    container_name: postgresql
    volumes:
      - postgresql-data:/var/lib/postgresql:Z
    environment:
      - DB_USER=gitlab
      - DB_PASS=password
      - DB_NAME=gitlabhq_production
      - DB_EXTENSION=pg_trgm,btree_gist

  gitlab:
    restart: always
    image: ccr.ccs.tencentyun.com/k7scn/gitlab:18.0.2
    # image: sameersbn/gitlab:18.0.2
    container_name: gitlab
    depends_on:
      - redis
      - postgresql
    ports:
      - "10080:80"
      - "10022:22"
    volumes:
      - gitlab-data:/home/git/data:Z
    healthcheck:
      test: ["CMD""/usr/local/sbin/healthcheck"]
      interval: 5m
      timeout: 10s
      retries: 3
      start_period: 5m
    environment:
      - DEBUG=false

      - DB_ADAPTER=postgresql
      - DB_HOST=postgresql
      - DB_PORT=5432
      - DB_USER=gitlab
      - DB_PASS=password
      - DB_NAME=gitlabhq_production

      - REDIS_HOST=redis
      - REDIS_PORT=6379

      - TZ=Asia/Shanghai
      - GITLAB_TIMEZONE=Shanghai

      - GITLAB_HTTPS=false
      - SSL_SELF_SIGNED=false

      - GITLAB_HOST=localhost
      - GITLAB_PORT=10080
      - GITLAB_SSH_PORT=10022
      - GITLAB_RELATIVE_URL_ROOT=
      - GITLAB_SECRETS_DB_KEY_BASE=long-and-random-alphanumeric-string
      - GITLAB_SECRETS_SECRET_KEY_BASE=long-and-random-alphanumeric-string
      - GITLAB_SECRETS_OTP_KEY_BASE=long-and-random-alphanumeric-string

      - GITLAB_ROOT_PASSWORD=gitlab@PasSw0rd
      - GITLAB_ROOT_EMAIL=

      - GITLAB_NOTIFY_ON_BROKEN_BUILDS=true
      - GITLAB_NOTIFY_PUSHER=false

      - GITLAB_EMAIL=notifications@example.com
      - GITLAB_EMAIL_REPLY_TO=noreply@example.com
      - GITLAB_INCOMING_EMAIL_ADDRESS=reply@example.com

      - GITLAB_BACKUP_SCHEDULE=daily
      - GITLAB_BACKUP_TIME=01:00

      - SMTP_ENABLED=false
      - IMAP_ENABLED=false
      - OAUTH_ENABLED=false


volumes:
  redis-data:
  postgresql-data:
  gitlab-data:

更多可以参考官方compose[2]

启动GitLab, 使用docker compose up -d, 几分钟后,访问 http://your-domain.com 或 http://your-server-ip,即可看到 GitLab 的登录页面!默认管理员账号为 root,密码为你在环境变量中设置的 GITLAB_ROOT_PASSWORD

进阶玩法:让你的 GitLab 更强大

搭配Traefik或者Caddy实现https,或者根据自己的需求完善环境变量

项目

GitHub 仓库:https://github.com/sameersbn/docker-gitlab




推荐本站淘宝优惠价购买喜欢的宝贝:

image.png

本文链接:https://www.hqyman.cn/post/11762.html 非本站原创文章欢迎转载,原创文章需保留本站地址!

分享到:
打赏





休息一下~~


« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

请先 登录 再评论,若不是会员请先 注册

您的IP地址是: