之前搭建的gitlab因为使用编译安装参数问题,不能使用ssh认证,重新修改比较麻烦,之后查询资料使用sameersbn的docker环境搭建可解决,简单易用,记录如下;
github地址:https://github.com/sameersbn/docker-gitlab

主要需要修改的文件为docker-compose.yml,里面定义了使用的镜像和相关参数,主要说明如下:
主要使用redis、postgresql和gitlab镜像(也可使用mysql,但官方建议使用postgresql)

version: '2'
services:
  redis:
    restart: always
    p_w_picpath: sameersbn/redis:latest    #redis镜像
    command:
    - --loglevel warning
    volumes:
    - /srv/docker/gitlab/redis:/var/lib/redis:Z
  postgresql:
    restart: always
    p_w_picpath: sameersbn/postgresql:9.5-3    #postgresql镜像
    volumes:
    - /srv/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
    p_w_picpath: sameersbn/gitlab:8.13.5    #gitlab镜像
    depends_on:
    - redis
    - postgresql
    ports:
    - "127.0.0.1:10080:80"
    - "10022:22"
    volumes:
    - /srv/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=ttxsgoto.com     #定义gitlab使用的域名
    - GITLAB_PORT=80        #定义使用http的端口
    - GITLAB_SSH_PORT=10022    #定义使用ssh的端口
    - 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=

也可使用https,具体可以参考github实例,经过上述配置后,启动容器:

docker-compose up -d

配置nginx代理,之后部署完成,访问对应的域名即可,经测试http,ssh都可使用,默认的用户为root,第一次登陆时需要修改密码。