Docker使用容器运行Gitlab

安装

Gitlab 镜像

1
2
# https://hub.docker.com/r/gitlab/gitlab-ce
docker pull gitlab/gitlab-ce

生成容器并运行

1
2
3
4
5
6
7
8
9
sudo docker run --detach \
--hostname 192.168.4.216 \
--publish 443:443 --publish 8880:80 --publish 2222:22 \
--name gitlab \
--restart always \
--volume /srv/gitlab/config:/etc/gitlab:Z \
--volume /srv/gitlab/logs:/var/log/gitlab:Z \
--volume /srv/gitlab/data:/var/opt/gitlab:Z \
gitlab/gitlab-ce:latest

配置

端口配置

这里80端口被禁用,选择使用https默认端口访问
打开端口443以允许入站HTTPS流量

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# UFW example (Debian, Ubuntu)
sudo ufw allow https

# lokkit example (RedHat, CentOS 6)
sudo lokkit -s https

# firewall-cmd (RedHat, Centos 7)
sudo firewall-cmd --permanent --add-service=https

sudo systemctl reload firewalld

#进入容器内部
$ docker exec -it gitlab bin/bash
#编辑配置

$ vi /etc/gitlab/gitlab.rb

#gitlab.rb 内添加内容
#external_url "https://192.168.4.216"
#带端口的试了下不成功443


将所有http转成https
nginx['redirect_http_to_https'] = true

配置邮箱服务

这里用的是腾讯企业邮箱
官方配置文档

1
2
3
4
5
6
7
8
9
10
11
12
#gitlab.rb 内添加内容

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'
gitlab_rails['smtp_domain'] = "exmail.qq.com"

配置shell端口

gitlab_rails[‘gitlab_shell_ssh_port’] = 2222

重启配置

1
2
#时间较长
gitlab-ctl reconfigure

测试

1
2
#时间较长
gitlab-rails console

Notify.test_email(‘邮箱地址’, ‘主题’, ‘摘要’).deliver_now

离开

1
exit