Docker-gitlab部署

sameersbn/gitlab/#installation

Docker-gitlab部署_第1张图片
图片.png

拉取docker镜像

docker pull sameersbn/postgresql:latest
docker pull sameersbn/redis:latest
docker pull sameersbn/gitlab:latest

docker 安装 postgresql

docker run --name gitlab-postgresql -d \
    --publish 5432:5432 \
    --env 'PG_TRUST_LOCALNET=true' \
    --env 'PG_PASSWORD=yourpassword' \
    --env 'DB_NAME=gitlabhq_production' \
    --env 'DB_USER=gitlab' --env 'DB_PASS=password' \
    --env 'DB_EXTENSION=pg_trgm' \
    --volume /srv/docker/gitlab/postgresql:/var/lib/postgresql \
    sameersbn/postgresql:latest
  • --publish | -p 映射端口
  • --env | -e 设置容器内环境变量
  • --volume | -v 映射宿主机目录到容器目录
  • PG_TRUST_LOCALNET=true 信任本地网络连接
  • PG_PASSWORD=yourpassword 默认postgres用户只允许从本地连接,此项配置密码允许远程连接
  • DB_NAME=gitlabhq_production 默认不创建其他数据库,通过设置DB_NAME创建,多个数据库时以,隔开
  • DB_USER=gitlab,DB_PASS=password 对创建的数据库授权
  • DB_EXTENSION=pg_trgm 添加pg_trgm扩展,相当于执行 create extension pg_trgm;

docker 安装 redis

docker run --name gitlab-redis -d \
    --volume /srv/docker/gitlab/redis:/var/lib/redis \
    sameersbn/redis:latest

docker 安装 gitlab

docker run --name gitlab -d \
    --link gitlab-postgresql:postgresql --link gitlab-redis:redisio \
    --publish 10022:22 --publish 10080:80 \
    --env 'GITLAB_PORT=80' --env 'GITLAB_SSH_PORT=22' \
    --env 'GITLAB_SECRETS_DB_KEY_BASE=long-and-random-alpha-numeric-string' \
    --env 'GITLAB_SECRETS_SECRET_KEY_BASE=long-and-random-alpha-numeric-string' \
    --env 'GITLAB_SECRETS_OTP_KEY_BASE=long-and-random-alpha-numeric-string' \
    --volume /srv/docker/gitlab/gitlab:/home/git/data \
    sameersbn/gitlab:latest
  • --link 链接容器服务,通过link,可以自动获取前文设置的DB库名、用户名、密码,无需再另外提供
  • GITLAB_PORT=80 定义gitlab web端口为80
  • GITLAB_SSH_PORT=22 定义gitlab容器的ssh服务端口为22
  • GITLAB_SECRETS_DB_KEY_BASE GitLab CI 所使用的加密密钥,至少32字符长度
  • GITLAB_SECRETS_SECRET_KEY_BASE session 加密密钥,至少64字符长度
  • GITLAB_SECRETS_OTP_KEY_BASE Encryption key for OTP related stuff with GitLab ,至少64字符长度
  • 加密密钥都可以通过 pwgen -Bsv1 64 生成
  • gitlab ssh root 默认密码 5iveL!fe,可以通过 GITLAB_ROOT_PASSWORD设置,密码至少8字符长度

docker-compse

version: '2'
services:
  gitlab-postgresql:
    image: sameersbn/postgresql:latest
    environment:
      PG_TRUST_LOCALNET: 'true'
      PG_PASSWORD: Passw0rd
      DB_NAME: gitlabhq_production
      DB_USER: gitlab
      DB_PASS: Passw0rd
    stdin_open: true
    volumes:
    - /srv/docker/gitlab/postgresql:/var/lib/postgresql
    tty: true
    ports:
    - 5432:5432/tcp
  gitlab-redis:
    image: sameersbn/redis:latest
    stdin_open: true
    volumes:
    - /srv/docker/gitlab/redis:/var/lib/redis
    tty: true
  gitlab:
    image: sameersbn/gitlab:latest
    environment:
      GITLAB_PORT: '80'
      GITLAB_SSH_PORT: '22'
      GITLAB_SECRETS_DB_KEY_BASE: long-and-random-alpha-numeric-string
      GITLAB_SECRETS_SECRET_KEY_BASE: long-and-random-alpha-numeric-string
      GITLAB_SECRETS_OTP_KEY_BASE: long-and-random-alpha-numeric-string
    volumes:
    - /srv/docker/gitlab/gitlab:/home/git/data
    links:
    - gitlab-redis:redisio
    - gitlab-postgresql:postgresql
    ports:
    - 10020:22/tcp
    - 10080:80/tcp

你可能感兴趣的:(Docker-gitlab部署)