Install gitlab on ubuntu16.04 using docker

Gitlab Docker Install:

  1. Install Docker: https://docs.docker.com/engine/installation/linux/docker-ce/ubuntu/

    sudo apt-get remove docker docker-engine docker.io  
    sudo apt-get update
    
    sudo apt-get install linux-image-extra-$(uname -r) linux-image-extra-virtual 
    sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
    
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
    
    sudo apt-key fingerprint 0EBFCD88
    
    sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"  
    
    sudo apt-get update
    
    sudo apt-get install docker-ce
    
  1. Install Docker Compose: https://docs.docker.com/compose/install/#install-compose

    sudo curl -L https://github.com/docker/compose/releases/download/1.15.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
    
    sudo chmod +x /usr/local/bin/docker-compose
    
    docker-compose --version
    
  2. GitLab Docker images: http://docs.gitlab.com/omnibus/docker/README.html

    docker-compose.yml:

    gitlab:
        image: 'gitlab/gitlab-ce:latest'
        restart: always
        hostname: 'yinman'
        environment:
              GITLAB_OMNIBUS_CONFIG: |
                      external_url 'http://yinman:8090'
                      gitlab_rails['gitlab_shell_ssh_port'] = 2224
        ports:
              - '8090:8090'
              - '2224:22'
        volumes:
              - '/home/srv/gitlab/config:/etc/gitlab'
              - '/home/srv/gitlab/logs:/var/log/gitlab'
              - '/home/srv/gitlab/data:/var/opt/gitlab'
    

    Start Gitlab:

    sudo docker-compose up -d
    
  3. Change configure:

    sudo docker exec -it gitlab /bin/bash  
    sudo docker exec -it gitlab vi /etc/gitlab/gitlab.rb  
    sudo docker restart gitlab
    
  4. SMTP Setting: https://docs.gitlab.com/omnibus/settings/smtp.html#qq-exmail

    QQ exmail (腾讯企业邮箱)

    gitlab_rails['smtp_enable'] = true
    gitlab_rails['smtp_address'] = "smtp.exmail.qq.com"
    gitlab_rails['smtp_port'] = 465
    gitlab_rails['smtp_user_name'] = "xxxx@xx.com"
    gitlab_rails['smtp_password'] = "password"
    gitlab_rails['smtp_authentication'] = "login"
    gitlab_rails['smtp_enable_starttls_auto'] = true
    gitlab_rails['smtp_tls'] = true
    gitlab_rails['gitlab_email_from'] = 'xxxx@xx.com'
    
  5. import gitlab repository data

    cp linux-3.3-OMAP-L138.git /home/srv/gitlab/data/git-data/repositories/bqin/
    rm linux-3.3-OMAP-L138.git/hooks
    find ./ -name hooks | xargs rm
    chown git:git -R *
    gitlab-rake gitlab:import:repos
    
    git remote set-url origin ssh://git@yinman:2224/bqin/ysbr2.git
    
  6. 无需使用 sudo 执行 docker 命令

    sudo usermod -aG docker $(whoami)
    

    之后重新登录,再运行 $ docker run hello-world 进行测试

    docker run -it ubuntu
    

    该命令启动了一个 ubuntu 容器,然后通过 -i 开关指定在容器中开启一个可交互的 shell