使用Docker-Compose安装GitLab服务器
1. 请将下面代码保持为docker-compose.yml,然后在bash命令行中执行docker-compose up即可
version: '2'
services:
redis:
restart: always
image: sameersbn/redis:4.0.9-1
command:
- --loglevel warning
volumes:
- ~/docker/gitlab/redis:/var/lib/redis:Z
postgresql:
restart: always
image: sameersbn/postgresql:10
volumes:
- ~/docker/gitlab/postgresql:/var/lib/postgresql:Z
environment:
- DB_USER=gitlab
- DB_PASS=password
- DB_NAME=gitlabhq_production
- DB_EXTENSION=pg_trgm
gitlab:
restart: always
image: sameersbn/gitlab
depends_on:
- redis
- postgresql
ports:
- "10080:80"
- "10022:22"
volumes:
- ~/docker/gitlab/gitlab:/home/git/data:Z
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
- 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_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
- SMTP_DOMAIN=www.example.com
- SMTP_HOST=smtp.gmail.com
- SMTP_PORT=587
- SMTP_USER=mailer@example.com
- SMTP_PASS=password
- SMTP_STARTTLS=true
- SMTP_AUTHENTICATION=login
- 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_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_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_AZURE_API_KEY=
- OAUTH_AZURE_API_SECRET=
- OAUTH_AZURE_TENANT_ID=
2. 执行docker-compose.yml文件
# 执行代码前先保证以及在本地创建好相应目录,如果没有执行下面代码创建
$ cd ~
$ mkdir docker
$ cd docker
$ mkdir gitlab
$ cd gitlab
$ mkdir postgresql
$ mkdir redis
$ mkdir gitlab
# 这样才能保证本地挂载的目录存在
# cd ~/docker/gitlab/postgresql #检测目录是否创建成功
# cd ~/docker/gitlab/gitlab #检测目录是否创建成功
# cd ~/docker/gitlab/redis #检测目录是否创建成功
# 默认方式执行,默认打印启动日志,启动可能会有几分钟
$ docker-compose up
# 后台运行,不打印启动日志
$ docker-compose up -d
# 默认会创建三个容器,一个启动postgres服务器,一个启动redis缓存服务器,一个启动gitlab服务器
# 启动后默认会进行初始配置,需要一段时间,请耐心等待
# 启动完成后,请在浏览器打开 http://127.0.0.1:10080即可
# 如果docker-compose.yml中的默认端口已经被改,访问http://127.0.0.1[:your port]即可
# 如果以前没有下载相应的镜像,执行完命令后会自动下载,当前版本的镜像大约2G左右,需要一段时间
# 镜像下载完毕后为自动执行创建容器,并启动服务器的操作
3. 启动日志信息
MacdeMacBook-Pro:gitlab mac$ docker-compose up
Creating gitlab_postgresql_1_2a4924d682fe ... done
Creating gitlab_redis_1_44a326dd88bf ... done
Creating gitlab_gitlab_1_70e7a2063e08 ... done
Attaching to gitlab_redis_1_ad872d40d576, gitlab_postgresql_1_dafaec3696c9, gitlab_gitlab_1_43d512937f9c
redis_1_ad872d40d576 | Starting redis-server...
postgresql_1_dafaec3696c9 | Initializing datadir...
gitlab_1_43d512937f9c | Loading /etc/docker-gitlab/runtime/env-defaults
redis_1_ad872d40d576 | 1:C 25 Nov 08:59:17.678 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
redis_1_ad872d40d576 | 1:C 25 Nov 08:59:17.678 # Redis version=4.0.9, bits=64, commit=00000000, modified=0, pid=1, just started
redis_1_ad872d40d576 | 1:C 25 Nov 08:59:17.678 # Configuration loaded
redis_1_ad872d40d576 | 1:M 25 Nov 08:59:17.686 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
redis_1_ad872d40d576 | 1:M 25 Nov 08:59:17.686 # Server initialized
redis_1_ad872d40d576 | 1:M 25 Nov 08:59:17.687 # WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix this issue run the command 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' as root, and add it to your /etc/rc.local in order to retain the setting after a reboot. Redis must be restarted after THP is disabled.
gitlab_1_43d512937f9c | Initializing logdir...
gitlab_1_43d512937f9c | Initializing datadir...
4. 访问gitlab服务器
#默认管理员账号为 root
#初次访问http://127.0.0.1[:your port]时,进入默认账户root修改密码页面,此时更新你的密码即可