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
yamlgitlab: ## 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)
bashgitlab_rails['smtp_port'] 如果配置465、587 需要配置 gitlab_rails['smtp_tls'] = true # ali 云服务器不支持25端口 gitlab_rails['smtp_port'] 配置25 则需要配置 gitlab_rails['smtp_tls'] = false