获取images
sudo docker pull gitlab/gitlab-ce
配置一个新的环境变量$GITLAB_HOME
sudo mkdir -p docker/gitlab
export GITLAB_HOME=$HOME/docker/gitlab
安装运行
sudo docker run -itd \
--hostname 宿主机的域名/ip地址:7070 \
-p 443:443 -p 30022:22 -p 7070:80\
--name gitlab \
--restart always \
--volume $GITLAB_HOME/config:/etc/gitlab \
--volume $GITLAB_HOME/logs:/var/log/gitlab \
--volume $GITLAB_HOME/data:/var/opt/gitlab \
--volume /etc/localtime:/etc/localtime \
gitlab/gitlab-ce:latest
root 的密码
cd $GITLAB_HOME/config
sudo vim initial_root_password
配置邮件服务器
-
sudo vim $GITLAB_HOME/config/gitlab.rb
- 开通了smtp的qq邮箱
### Email Settings
gitlab_rails['smtp_enable'] = true # 开启 SMTP 功能
gitlab_rails['smtp_address'] = "smtp.qq.com"
gitlab_rails['smtp_port'] = 465 # 端口不可以选择587,测试过会发送邮件失败
gitlab_rails['smtp_user_name'] = "*******@***.***" # * 你的邮箱账号
gitlab_rails['smtp_password'] = "******" # * 授权码,不是密码
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
gitlab_rails['gitlab_email_from'] = '*******@qq.com' # * 发件人信息,必须跟‘smtp_user_name’保持一致,否则报错
gitlab_rails['smtp_domain'] = "qq.com" # 修改并不影响 经测试完全不影响,删除也不影响,并且发送的邮件都是一样的。
- 服务器本身有配置SMTP
###! **Can be: 'none', 'peer', 'client_once', 'fail_if_no_peer_cert'**
###! Docs: http://api.rubyonrails.org/classes/ActionMailer/Base.html
gitlab_rails['smtp_openssl_verify_mode'] = 'none'
### Email Settings
gitlab_rails['smtp_enable'] = true # 开启 SMTP 功能
gitlab_rails['smtp_address'] = "***.***.***.***"(SMTP服务ip地址)
gitlab_rails['smtp_port'] = 25 # (这边端口改为SMTP的端口即可)
#gitlab_rails['smtp_user_name'] = "*******@***.***" # * 你的邮箱账号
#gitlab_rails['smtp_password'] = "******" # * 授权码,不是密码(如果你的服务器本身配有SMTP服务,此项注释)
#gitlab_rails['smtp_authentication'] = "login"
#gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = false
#gitlab_rails['gitlab_email_from'] = 'GitLab.***.com' # * 发件人信息(这边填一个你喜欢的邮件名即可)
#gitlab_rails['smtp_domain'] = "***.com" # 修改并不影响 经测试完全不影响,删除也不影响,并且发送的邮件都是一样的。
##! If your SMTP server does not like the default 'From: gitlab@gitlab.example.com'
##! can change the 'From' with this setting.
gitlab_rails['gitlab_email_from'] = '****@gitlab.com' #填写发件人邮箱
# gitlab_rails['gitlab_email_display_name'] = 'Example'
# gitlab_rails['gitlab_email_reply_to'] = 'noreply@example.com'
# gitlab_rails['gitlab_email_subject_suffix'] = ''
设置存储仓库数据
sudo vim /etc/gitlab/gitlab.rb
# 把注释取消然后指定新的仓库存储位置
git_data_dirs({ "default" => { "path" => "/home/gitlab-data" } })
- 重置服务
sudo docker exec -it gitlab /bin/bash
gitlab-ctl reconfigure
gitlab-rails console
##发送邮件测试一下
Notify.test_email('username@xxx.com', 'Message Subject', 'Message Body').deliver_now
- 如果遇到OpenSSL::SSL::SSLError (hostname "..." does not match the server certificate)
sudo vim /opt/gitlab/config/gitlab.rb
###! **Can be: 'none', 'peer', 'client_once', 'fail_if_no_peer_cert'**
###! Docs: http://api.rubyonrails.org/classes/ActionMailer/Base.html
gitlab_rails['smtp_openssl_verify_mode'] = 'none'
- 重制服务
sudo docker exec -it gitlab /bin/bash
gitlab-ctl reconfigure
gitlab-rails console
##发送邮件测试一下
Notify.test_email('username@xxx.com', 'Message Subject', 'Message Body').deliver_now
[图片上传中...(image.png-4d1190-1659001606145-0)]
ps:这边 不削皮 遇到了服务器双ip问题,不削皮 的smtp服务是用.11的ip去添加策略的所以需要容器ip指向到.11这个ip
<---iptables IP地址重定向 --->
sudo iptables -t nat -I POSTROUTING -s 172.17.0.2[gitlab容器内ip] -j SNAT --to-source ***.***.***.11[对外ip]
#如何查看容器IP :docker inspect gitlab
sudo iptables -t nat --list --line-number #查看添加的策略
sudo iptables -t nat -D POSTROUTING 1 #删除刚刚添加的策略的方法