Docker-Compose部署Gitlab以及Gitlab配置SMTP郵件服務

付同學發表於2023-11-30

使用Docker-Compose部署Gitlab

拉取映象

地址: https://hub.docker.com/r/gitlab/gitlab-ce/tags

拉取到映象後,使用docker tag修改映象,docker push推送到自己的映象倉庫(內網部署)

編寫docker-compose檔案

##建立容器掛載出來的資料夾
mkdir /gitlab && cd /gitlab
mkdir -p data/{log,opt,etc}
version: '3'

services:
  gitlab:
  ##image需要替換為自己映象倉庫的gitlab-ce地址
    image: dbatest1.ip.tp-link.com:9002/gitlab-ce:latest 
    volumes:
       - /gitlab/data/log:/var/log/gitlab
       - /gitlab/data/opt:/var/opt/gitlab
       - /gitlab/data/etc:/etc/gitlab
    ports:
       - "80:80" ##UI管理介面地址對映
       - "9009:22" ##ssh協議埠地址對映
編寫一個Makefile檔案
NAME = gitlab

deploy:
        docker stack deploy --with-registry-auth --resolve-image always -c docker-compose.yml $(NAME)

修改ssh與域名配置

ps:如果這裡不做修改,那麼在Gitlab裡展示出來的倉庫地址都是錯誤的,是拉取不下來的!以及smtp服務裡自動傳送的郵件連結裡的地址都是容器的地址,點選了根本訪問不到!

使用make deploy執行gitlab服務後
去Gitlba服務掛載的資料夾下修改相關配置 /gitlab/data/etc/gitlab.rb
修改以下幾行
##這個需要修改為虛擬機器上對外開放的ssh埠
gitlab_rails['gitlab_shell_ssh_port'] = 9009 
##這個需要修改為gitlab所在虛擬機器的域名(如果是固定在單節點就這樣寫,容器自由編排就不能這麼寫)
gitlab_rails['gitlab_ssh_host'] = 'dbatest1.ip.tp-link.com'
##這個和上一個一樣,需要修改為虛擬機器域名以及UI介面訪問的埠,預設是80,不同則需修改
external_url 'http://dbatest1.ip.tp-link.com'

修改完後重啟服務
docker service update --force gitlab_gitlab

增加SMTP郵件服務

如果想要郵件來通知管理員以及使用者各種更新,需要配置SMTP引數

去Gitlba服務掛載的資料夾下修改相關配置 /gitlab/data/etc/gitlab.rb
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "mail.tp-link.com.hk" ##郵件伺服器地址
gitlab_rails['smtp_port'] = 587			##埠
gitlab_rails['smtp_user_name'] = "yapi@tp-link.com.hk"  ##傳送郵件的郵箱
gitlab_rails['smtp_password'] = "xxxxxxxxxxx"           ##密碼
gitlab_rails['smtp_domain'] = "mail.tp-link.com.hk"		##郵件伺服器地址
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = false
gitlab_rails['smtp_pool'] = false

gitlab_rails['gitlab_email_from'] = 'notifications.yapi@tp-link.com.hk' ##傳送郵件的郵箱

修改完後重啟服務
docker service update --force gitlab_gitlab

相關文章