在群晖6.x中是有gitlab套件的,但是7.x群晖官方移除了套件的支持,目前最适合在群晖7.2中部署gitlab的方式就是docker,而且是docker-compose,群晖7.2刚支持docker-compose,就可以用起来了, 有了它,部署gitlab变得超级简单。


使用docker部署gitlab,有两种选择:

  1. 官方的gitlab-ce,
  2. 第三方的docker镜像

老实说,官方的gitlab-ce超级难用,部署后各种链接问题,像我需要https又不想用gitlab自身的反向代理的时候,配置就会变得乱七八糟,一份gitlab.rb里边一大堆注释掉的都是配置,还有其他文件也要配合着改,而第三方的gitlab简单配置下就能完美使用,在群晖6.x的时候,它的套件也是用的第三方gitlab,其实就是这个:
https://github.com/sameersbn/docker-gitlab

这个项目紧跟gitlab官方的脚本,版本号也是一直在更新,我的群晖6.2中gitlab版本还只是13.2,现在已经是16.2了。

sameersbn gitlab也提供了compose文件 https://raw.githubusercontent.com/sameersbn/docker-gitlab/master/docker-compose.yml

其中有个坑,postgresql版本它指定了12,是有问题的,然而它们没有制作13的postgresql,但是他们却有14和15,所以用14是没有问题的,15会有问题,所以compose文件需要改动下,可以参照下面的填写:

version: '2.3'

services:
  redis:
    restart: always
    image: redis:6.2.6
    command:
    - --loglevel warning
    volumes:
    #这边改成相对路径,相对于你compose文件而言,提前创建好redis-data文件夹
    #- redis-data:/data:Z
    - ./redis-data:/data:Z

  postgresql:
    restart: always
    #这里要改动下
    #image: sameersbn/postgresql:12-20200524
    image: sameersbn/postgresql:14
    volumes:
        #这边改成相对路径,相对于你compose文件而言,提前创建好postgresql-data文件夹,这个如果有权限问题,就ssh进入群晖将此文件夹权限改为700
     #- postgresql-data:/var/lib/postgresql:Z
    - ./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: sameersbn/gitlab:16.2.3
    depends_on:
    - redis
    - postgresql
    ports:
    #端口号根据自己需求来改
    - "10080:80"
    - "10022:22"
    volumes:
    #这边改成相对路径,相对于你compose文件而言,提前创建好gitlab-data文件夹
    #- gitlab-data:/home/git/data:Z
    - ./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/Kolkata
     #- GITLAB_TIMEZONE=Kolkata
    - TZ=Asia/Chongqing
    - GITLAB_TIMEZONE=Chongqing

     #这边要用https 所以要打开
    #- GITLAB_HTTPS=false
    - GITLAB_HTTPS=true
    - SSL_SELF_SIGNED=false

      #填写你的域名
    - GITLAB_HOST=localhost
      #填写你反向代理监听的端口
    - GITLAB_PORT=10080
      #填写你映射的 ssh端口
    - GITLAB_SSH_PORT=10022
    - GITLAB_RELATIVE_URL_ROOT=
     #这三个值你可以从旧版的群晖gitlab套件中的docker环境变量中复制过来,如果你真要做迁移的话,需要保证和旧的完全一致,如果全新安装也可以复制过来,或者自己去生成也行
    - 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

      #设置你的root密码
    - GITLAB_ROOT_PASSWORD=你的root密码
     #设置你的root账户的邮箱
    - GITLAB_ROOT_EMAIL=你的root邮箱

    - 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
      #这边配置邮件通知服务,很有必要,当你开放注册的时候,别人就能收到邮箱,还有其他邮件通知都能发送,以qq邮箱为例,下面只要改两个参数即可,其它不用动
    - SMTP_ENABLED=true
    - SMTP_DOMAIN=smtp.qq.com
    - SMTP_HOST=smtp.qq.com
    - SMTP_PORT=587
    - SMTP_USER=你的qq邮箱
    - SMTP_PASS=你的qq授权码
    - SMTP_STARTTLS=true
    - SMTP_AUTHENTICATION=login

#后面一直到最后所有基本上不需要配置,除非真的有需求,可以把参数留着,docker-compose支持参数留空,用到的时候再填写
    - IMAP_ENABLED=false
    - IMAP_HOST=imap.gmail.com
    - IMAP_PORT=993
    - IMAP_USER=mailer@example.com
    - IMAP_PASS=password
    - IMAP_SSL=true
    - IMAP_STARTTLS=false

    - OAUTH_ENABLED=false
    - OAUTH_AUTO_SIGN_IN_WITH_PROVIDER=
    - OAUTH_ALLOW_SSO=
    - OAUTH_BLOCK_AUTO_CREATED_USERS=true
    - OAUTH_AUTO_LINK_LDAP_USER=false
    - OAUTH_AUTO_LINK_SAML_USER=false
    - OAUTH_EXTERNAL_PROVIDERS=

    - OAUTH_CAS3_LABEL=cas3
    - OAUTH_CAS3_SERVER=
    - OAUTH_CAS3_DISABLE_SSL_VERIFICATION=false
    - OAUTH_CAS3_LOGIN_URL=/cas/login
    - OAUTH_CAS3_VALIDATE_URL=/cas/p3/serviceValidate
    - OAUTH_CAS3_LOGOUT_URL=/cas/logout

    - OAUTH_GOOGLE_API_KEY=
    - OAUTH_GOOGLE_APP_SECRET=
    - OAUTH_GOOGLE_RESTRICT_DOMAIN=

    - OAUTH_FACEBOOK_API_KEY=
    - OAUTH_FACEBOOK_APP_SECRET=

    - OAUTH_TWITTER_API_KEY=
    - OAUTH_TWITTER_APP_SECRET=

    - OAUTH_GITHUB_API_KEY=
    - OAUTH_GITHUB_APP_SECRET=
    - OAUTH_GITHUB_URL=
    - OAUTH_GITHUB_VERIFY_SSL=

    - OAUTH_GITLAB_API_KEY=
    - OAUTH_GITLAB_APP_SECRET=

    - OAUTH_BITBUCKET_API_KEY=
    - OAUTH_BITBUCKET_APP_SECRET=
    - OAUTH_BITBUCKET_URL=

    - OAUTH_SAML_ASSERTION_CONSUMER_SERVICE_URL=
    - OAUTH_SAML_IDP_CERT_FINGERPRINT=
    - OAUTH_SAML_IDP_SSO_TARGET_URL=
    - OAUTH_SAML_ISSUER=
    - OAUTH_SAML_LABEL="Our SAML Provider"
    - OAUTH_SAML_NAME_IDENTIFIER_FORMAT=urn:oasis:names:tc:SAML:2.0:nameid-format:transient
    - OAUTH_SAML_GROUPS_ATTRIBUTE=
    - OAUTH_SAML_EXTERNAL_GROUPS=
    - OAUTH_SAML_ATTRIBUTE_STATEMENTS_EMAIL=
    - OAUTH_SAML_ATTRIBUTE_STATEMENTS_NAME=
    - OAUTH_SAML_ATTRIBUTE_STATEMENTS_USERNAME=
    - OAUTH_SAML_ATTRIBUTE_STATEMENTS_FIRST_NAME=
    - OAUTH_SAML_ATTRIBUTE_STATEMENTS_LAST_NAME=

    - OAUTH_CROWD_SERVER_URL=
    - OAUTH_CROWD_APP_NAME=
    - OAUTH_CROWD_APP_PASSWORD=

    - OAUTH_AUTH0_CLIENT_ID=
    - OAUTH_AUTH0_CLIENT_SECRET=
    - OAUTH_AUTH0_DOMAIN=
    - OAUTH_AUTH0_SCOPE=

    - OAUTH_AZURE_API_KEY=
    - OAUTH_AZURE_API_SECRET=
    - OAUTH_AZURE_TENANT_ID=

改完后命名为docker-compose.yml传入群晖的docker项目中,然后点启动即可。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注