使用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