Skip to content

GitLab

GitLab 社区版 gitlab/gitlab-ce

  • 原版 gitlab/gilab-ce
  • 汉化版 twang2218/gitlab-ce-zh
  • 需要 4G RAM

run

1、启动

bash
$ docker run -d --name gitlab \
-p 9022:22 -p 9080:80 \
-v /gitlab/conf:/etc/gitlab \
-v /gitlab/logs:/var/log/gitlab \
-v /gitlab/data:/var/opt/gitlab \
--restart unless-stopped \
--privileged=true \
-e GITLAB_ROOT_PASSWORD='password'
twang2218/gitlab-ce-zh:11.1.4

2、配置

  • /etc/gitlab/gitlab.rb

    bash
    # 配置宿主机ip,如果有域名也可以使用域名
    external_url 'http://39.103.168.193'
    gitlab_rails['gitlab_ssh_host'] = '39.104.168.193'
    # docker 映射的 ssh 端口 22端口
    gitlab_rails['gitlab_shell_ssh_port'] = 9022
    gitlab_rails['time_zone'] = 'Asia/Shanghai'
    # 初始密码设置 与 GITLAB_ROOT_PASSWORD 相同
    gitlab_rails['initial_root_password'] = 'password'
    
    # 邮件服务
    gitlab_rails['smtp_enable'] = true
    gitlab_rails['smtp_address'] = "smtp.163.com"
    # 服务器端口号
    # 阿里云服务器默认屏蔽25端口。
    # 可以使用465、587。需要配置,gitlab_rails['smtp_tls'] = true
    gitlab_rails['smtp_port'] = 587
    gitlab_rails['smtp_user_name'] = "sinuto@163.com"
    # smtp 授权码
    gitlab_rails['smtp_password'] = "ZZBTHDLYGJVXFMVB"
    gitlab_rails['smtp_domain'] = "163.com"
    gitlab_rails['smtp_authentication'] = "login"
    gitlab_rails['smtp_enable_starttls_auto'] = true
    gitlab_rails['smtp_tls'] = true
    
    user['git_user_email'] = "sinuto@163.com"
    gitlab_rails['gitlab_email_from'] = "sinuto@163.com"
    gitlab_rails['gitlab_email_reply_to'] = "sinuto@163.com"
    gitlab_rails['gitlab_email_display_name'] = "sinuto@163.com"
  • /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml

    yaml
    gitlab:
    ## Web server settings (note: host is the FQDN, do not include http://)
      host: 39.104.168.193
      # 修改端口
      port: 9080

3、root 密码修改

bash
$ gitlab-rails console -e production
# root id = 1
user = User.find(id)
user = User.find_by_username 'username'
user = User.find_by(email: '')

password = ''
user.password = password
user.password_confirmation = password
user.save!

4、邮箱测试

bash
# 修改配置后需要更新配置文件
$ gitlab-ctl reconfigure 
$ gitlab-ctl restart

$ gitlab-rails console
$ Notify.test_email('unitot@163.com', 'Hello World', 'This is a test message').deliver_now

docker-compose

./ ├── conf ├── data ├── docker-compose.yml └── logs

docker-compose.yml

yml
version: '2.2.2'
services:
  gitlab:
    image: 'gitlab/gitlab-ce:rc'
    container_name: my-gitlab
    restart: always
    privileged: true
    hostname: my-gitlab
    environment:
      TZ: 'Asia/Shanghai'
      GITLAB_OMNIBUS_CONFIG: |
        external_url 'http://39.104.168.193'
        gitlab_rails['time_zone'] = 'Asia/Shanghai'
        gitlab_rails['gitlab_shell_ssh_port'] = 9022
        gitlab_rails['smtp_enable'] = true
        gitlab_rails['smtp_address'] = "smtp.163.com"
        gitlab_rails['smtp_port'] = 465
        gitlab_rails['smtp_user_name'] = "sinuto@163.com"
        gitlab_rails['smtp_password'] = "ZZBTHDLYGJVXFMVB"
        gitlab_rails['smtp_domain'] = "163.com"
        gitlab_rails['smtp_authentication'] = "login"
        gitlab_rails['smtp_enable_starttls_auto'] = true
        gitlab_rails['smtp_tls'] = true
        user['git_user_email'] = "sinuto@163.com"
        gitlab_rails['gitlab_email_from'] = "sinuto@163.com"
        gitlab_rails['gitlab_email_reply_to'] = "sinuto@163.com"
        gitlab_rails['gitlab_email_display_name'] = "sinuto@163.com"
    ports:
      - '9080:80'
      - '9022:22'
    volumes:
      - '/gitlab/conf:/etc/gitlab'
      - '/gitlab/logs:/var/log/gitlab'
      - '/gitlab/data:/var/opt/gitlab'

FAQ

  • SocketError (getaddrinfo: Name or service not known)

    bash
    # 配置DNS
    # /etc/sysconfig/network-script/ifcfg-eth0
    # 指定DNS
    PEERDNS=NO
    DNS1=8.8.8.8
    DNS2=223.5.5.5
  • EOFError (end of file reached)

  • Net::OpenTimeout (execution expired)

    bash
    gitlab_rails['smtp_port'] 如果配置465、587 需要配置
    gitlab_rails['smtp_tls'] = true
                
    # ali 云服务器不支持25端口
    gitlab_rails['smtp_port'] 配置25 则需要配置 
    gitlab_rails['smtp_tls'] = false