GitLab安装文档
      GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务。
      GitLab与GitHub的功能相似,通常企业使用GitLab在局域网搭建自己的Git代码管理仓库。
1 、Docker下安装Gitlab
      a、 拉取gitlab、redis、postgresql,gitlab依赖redis和postgresql:
            docker pull sameersbn/redis
            docker pull sameersbn/postgresql
           docker pull gitlab/gitlab‐ce:latest
       b、 创建postgresql、redis容器:
            docker run --name gitlab-postgresql --restart=always \
            -d --privileged=true \
            -e 'DB_NAME=gitlabhq_production' \
            -e 'DB_USER=gitlab' \
            -e 'DB_PASS=password' \
            -e 'DB_EXTENSION=pg_trgm' \
            -v /docker_data/gitlab/postgresql/data:/var/lib/postgresql sameersbn/postgresql 
           
             docker run --name gitlab-redis --restart=always \
            -d --privileged=true \
            -v /docker_data/gitlab/redis/data:/var/lib/redis sameersbn/redis
 
       c、创建gitlab容器:  

           docker run --name gitlab --restart=always \
           -d --link gitlab-postgresql:postgresql --link gitlab-redis:redisio \
           --hostname 192.168.200.12 -p 10022:22 -p 8899:80 \
            -e 'GITLAB_PORT=8899' -e 'GITLAB_SSH_PORT=10022' \
            -e 'GITLAB_SECRETS_DB_KEY_BASE=long-and-random-alpha-numeric-string' \
            -e 'GITLAB_SECRETS_SECRET_KEY_BASE=long-and-random-alpha-numeric-string' \
            -e 'GITLAB_SECRETS_OTP_KEY_BASE=long-and-random-alpha-numeric-string' \
            -e 'GITLAB_HOST=192.168.200.12' \
           -e 'SMTP_AUTHENTICATION=login' -v /docker_data/gitlab/data:/home/git/data gitlab/gitlab-ce  

          浏览器访问:http://92.168.200.12 :8899  初次访问需要等待一段时间。
       d、添加gitlab 用户
             

         docker exec -it gitlab   bash
          gitlab-rails console -e production   // 耐心等待  需要几分钟
    user = User.where(id: 1).first  //查找root 用户

          user.password = 'lwc12345..'                            #修改密码

          user.password_confirmation = 'lwc12345..'     #修改密码

           user.save!                                          #保存

          exit    // 最后依次输入退出容器