運維記錄:Gitlab遷移 (docker篇)

Gitlab遷移(Docker版)

原由

公司的gitlab以前一直是安裝在阿里雲上的,考慮到隱私因素和安全性,準備遷移到本地的內網服務器內。並且容器化如今的流行和一些好的特性,準備此次用docker來部署gitlab。git

分析

以前的gitlab用的一鍵安裝包,數據庫是postgresqlredis

規劃

啓動三個docker容器
一個容器運行gitlab 
一個容器運行postgresql,而後 link到gitlab上。 
一個容器運行Redis,而後 link到gitlab上。 sql

docker的安裝的話這裏就不說了,自行去搜各個系統的安裝方法。docker

安裝方法

咱們先pull鏡像而後建立持久化目錄,數據庫

sudo docker pull sameersbn/postgresql:9.4

sudo mkdir -p  /opt/postgresql/data

啓動postgresql容器。安全

docker run --name postgresql -d  \  
-e  'DB_NAME=gitlabhq_production'  \  
-e  'DB_USER=gitlab'  \
-e  'DB_PASS=password' \  
-e  'DB_EXTENSION=pg_trgm'  \  
-v  /opt/postgresql/data:/var/lib/postgresql  \  
sameersbn/postgresql:9.4

先pull redis image服務器

sudo docker pull sameersbn/redis:latest

啓動 redis 容器app

sudo docker run --name=redis -d sameersbn/redis:latest

先把老版的Gitlab image pull回來dom

sudo docker pull sameersbn/gitlab:8.16.6

建立數據目錄gitlab

sudo mkdir -p /opt/gitlab/data

這個目錄會映像到窗口的/home/git/data目錄上,因此這裏保存了全部的數據,請必定不要刪除這裏的內容。
初始化
而後配置容器

docker run --name gitlab -i -t --rm --link postgresql:postgresql --link redis:redisio \
  -e "DB_USER=gitlab" -e "DB_PASS=password" \
  -e "DB_NAME=gitlabhq_production" \
  -e 'GITLAB_SECRETS_DB_KEY_BASE=long-and-random-alpha-numeric-string' \
-e 'GITLAB_SECRETS_SECRET_KEY_BASE=long-and-random-alpha-numeric-string' \
-e 'GITLAB_SECRETS_OTP_KEY_BASE=long-and-random-alpha-numeric-string' \
  -v /opt/gitlab/data:/home/git/data \
  sameersbn/gitlab:8.16.6 app:rake gitlab:setup

恢復
這裏要先把以前的備份放在/opt/gitlab/data/backup 下面
BACKUP 參數是備份名的前綴

docker run --name gitlab -it --rm  \
-p 10022:22 -p 10080:80 \
--link postgresql:postgresql --link redis:redisio \
-e "DB_USER=gitlab" -e "DB_PASS=password" \
-e "DB_NAME=gitlabhq_production" \
-e "GITLAB_HOST=10.21.12.14" \
-e "GITLAB_TIMEZONE=Beijing" \-e 'GITLAB_SECRETS_DB_KEY_BASE=long-and-random-alpha-numeric-string' \
-e 'GITLAB_SECRETS_SECRET_KEY_BASE=long-and-random-alpha-numeric-string' \
-e 'GITLAB_SECRETS_OTP_KEY_BASE=long-and-random-alpha-numeric-string' \
-v /opt/gitlab/data:/home/git/data \
sameersbn/gitlab:8.16.6 app:rake gitlab:backup:restore BACKUP=1504835793_2017_09_08

這個樣數據就所有到新的gitlab上了。
你會發現跟原來的同樣。
啓動容器
(注意:GITLAB_HOST=192.168.1.100:10080 這個參數要配置本身服務器的地址,而且帶上綁定的端口,否則在網頁端操做時會有問題)

docker run --name gitlab -d \
-p 10022:22 -p 10080:80 \
--link postgresql:postgresql --link redis:redisio \
-e "DB_USER=gitlab" -e "DB_PASS=password" \
-e "DB_NAME=gitlabhq_production" \
-e "GITLAB_HOST=192.168.1.100:10080" \
-e "GITLAB_TIMEZONE=Beijing" \
-e 'GITLAB_SECRETS_DB_KEY_BASE=long-and-random-alpha-numeric-string' \
-e 'GITLAB_SECRETS_SECRET_KEY_BASE=long-and-random-alpha-numeric-string' \
-e 'GITLAB_SECRETS_OTP_KEY_BASE=long-and-random-alpha-numeric-string' \
-v /opt/gitlab/data:/home/git/data \
sameersbn/gitlab:8.16.6
相關文章
相關標籤/搜索