2020-11-26|閱讀時間 ‧ 約 7 分鐘

CentOS 7 使用 Docker 架設 GitLab

GitLab有分為CE(社區版)與EE(企業收費版)兩個版本,差別在EE有多出一些額外功能需要收費,EE的免費功能其實跟GitLab CE一樣,因此可以直接架設 GitLab EE,也許以後會想用收費功能也說不定。
1. 抓取gitlab image: $ docker pull gitlab/gitlab-ee
2. 在local準備gitlab工作目錄: $ mkdir -p gitlab/{config,data,logs} gitlab folder下建立config, data, logs三個folder,這是為了local目錄能與容器內的gitlab工作目錄mapping,以後就不用進到容器。 3. 啟動gitlab: $ docker run -d \ --name gitlab \ --hostname gitlab \ --restart always \ -p 4443:443 -p 8888:80 -p 2333:22 \ -v /home/vic/gitlab/config:/etc/gitlab \ -v /home/vic/gitlab/data:/var/opt/gitlab \ -v /home/vic/gitlab/logs:/var/log/gitlab \ gitlab/gitlab-ee:latest
-d: 背景執行 --name: 容器名稱 --hostname: 容器内主機名稱 --restart: docker重啟時,容器自動啟動。 -p: port mapping(hostPort:containerPort) -v: 目錄mapping,HOST-DIR:CONTAINER-DIR
Note: 可先查看目前有哪些port還沒使用: $ netstat -tnl
查看目錄結構: $ tree -L 2 /home/vic/gitlab/
若沒有tree先安裝: $ yum -y install tree
啟動後即可看到這畫面,表示還在建置要等一下:
過一陣子就可以了,第一次使用要重設root密碼:
登入後就可以開始用了!
4. 設定SMTP Server
這主要是要讓gitlab系統能夠登入我們的mail,來寄信給註冊gitlab的user。
在gitlab/config/目錄下找到gitlab.rb打開它,找到gitlab_rails['smtp_xxxx'] 這一個GitLab email server settings的地方:
以ZOHO為例(經測試ok的設定): gitlab_rails['smtp_enable'] = true gitlab_rails['smtp_address'] = "smtp.zoho.com" gitlab_rails['smtp_port'] = 587 gitlab_rails['smtp_authentication'] = "plain" gitlab_rails['smtp_enable_starttls_auto'] = true gitlab_rails['smtp_user_name'] = "username@yourdomain" gitlab_rails['smtp_password'] = "*" gitlab_rails['smtp_domain'] = "smtp.zoho.com" gitlab_rails['gitlab_email_from'] = 'username@yourdomain' gitlab_rails['gitlab_email_reply_to'] = 'noreply@example.com' gitlab_rails['smtp_tls'] = false gitlab_rails['smtp_openssl_verify_mode'] = 'none'
5.測試寄信是否正常:
進入gitlab容器: $ docker exec -it ${container_id} bash $ gitlab-rails console 這邊要等一下才能下指令 $ Notify.test_email('收件者信箱', '標題', '內文').deliver_now
若出現錯誤: OpenSSL::SSL::SSLError (SSL_connect returned=1 errno=0 state=error: wrong version number)
把gitlab_rails['smtp_tls'] 設為false即可!
Note:
重新載入 gitlab 設定檔: $ gitlab-ctl reconfigure
重啟 gitlab 服務: $ gitlab-ctl restart
重啟gitlab容器: $ docker restart gitlab
權限問題可用這個方法修復: $ sudo docker exec gitlab update-permissions $ sudo docker restart gitlab
分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.