獲取images
sudo docker pull gitlab/gitlab-ce
配置一個新的環(huán)境變量$GITLAB_HOME
sudo mkdir -p docker/gitlab
export GITLAB_HOME=$HOME/docker/gitlab
安裝運(yùn)行
sudo docker run -itd \
--hostname 宿主機(jī)的域名/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
配置郵件服務(wù)器
-
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庞瘸,測試過會發(fā)送郵件失敗
gitlab_rails['smtp_user_name'] = "*******@***.***" # * 你的郵箱賬號
gitlab_rails['smtp_password'] = "******" # * 授權(quán)碼甫恩,不是密碼
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
gitlab_rails['gitlab_email_from'] = '*******@qq.com' # * 發(fā)件人信息,必須跟‘smtp_user_name’保持一致幸斥,否則報(bào)錯
gitlab_rails['smtp_domain'] = "qq.com" # 修改并不影響 經(jīng)測試完全不影響杀怠,刪除也不影響,并且發(fā)送的郵件都是一樣的。
- 服務(wù)器本身有配置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服務(wù)ip地址)
gitlab_rails['smtp_port'] = 25 # (這邊端口改為SMTP的端口即可)
#gitlab_rails['smtp_user_name'] = "*******@***.***" # * 你的郵箱賬號
#gitlab_rails['smtp_password'] = "******" # * 授權(quán)碼蹋订,不是密碼(如果你的服務(wù)器本身配有SMTP服務(wù),此項(xiàng)注釋)
#gitlab_rails['smtp_authentication'] = "login"
#gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = false
#gitlab_rails['gitlab_email_from'] = 'GitLab.***.com' # * 發(fā)件人信息(這邊填一個你喜歡的郵件名即可)
#gitlab_rails['smtp_domain'] = "***.com" # 修改并不影響 經(jīng)測試完全不影響泊藕,刪除也不影響辅辩,并且發(fā)送的郵件都是一樣的。
##! 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' #填寫發(fā)件人郵箱
# gitlab_rails['gitlab_email_display_name'] = 'Example'
# gitlab_rails['gitlab_email_reply_to'] = 'noreply@example.com'
# gitlab_rails['gitlab_email_subject_suffix'] = ''
設(shè)置存儲倉庫數(shù)據(jù)
sudo vim /etc/gitlab/gitlab.rb
# 把注釋取消然后指定新的倉庫存儲位置
git_data_dirs({ "default" => { "path" => "/home/gitlab-data" } })
- 重置服務(wù)
sudo docker exec -it gitlab /bin/bash
gitlab-ctl reconfigure
gitlab-rails console
##發(fā)送郵件測試一下
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'
- 重制服務(wù)
sudo docker exec -it gitlab /bin/bash
gitlab-ctl reconfigure
gitlab-rails console
##發(fā)送郵件測試一下
Notify.test_email('username@xxx.com', 'Message Subject', 'Message Body').deliver_now
[圖片上傳中...(image.png-4d1190-1659001606145-0)]
ps:這邊 不削皮 遇到了服務(wù)器雙ip問題娃圆,不削皮 的smtp服務(wù)是用.11的ip去添加策略的所以需要容器ip指向到.11這個ip
<---iptables IP地址重定向 --->
sudo iptables -t nat -I POSTROUTING -s 172.17.0.2[gitlab容器內(nèi)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 #刪除剛剛添加的策略的方法