一是偷、鏡像拉取
最新版本:docker pull gitlab/gitlab-ce
固定版本:docker pull gitlab/gitlab-ce:版本-ce.0(例如gitlab/gitlab-ce:15.1.0-ce.0)
二、啟動腳本
80是默認的http端口刀崖,可修改,通常http和https開一個端口即可
443是默認的https端口膘茎,可修改扳埂,通常http和https開一個端口即可
22是ssh端口(gitlab拉取代碼有http和ssh兩種方式),gitlab無法修改乓序,docker映射可修改
docker run \
? ? ? ? -itd? \
? ? ? ? -p 80:80 \
? ? ? ? -p 443:443 \
? ? ? ? -p ssh端口:22 \
? ? ? ? -v /data/docker-space/gitlab/bind/etc:/etc/gitlab? \
? ? ? ? -v /data/docker-space/gitlab/bind/log:/var/log/gitlab \
? ? ? ? -v /data/docker-space/gitlab/bind/opt:/var/opt/gitlab \
? ? ? ? -e TZ=Asia/Shanghai \
? ? ? ? --restart always \
? ? ? ? --privileged=true \
? ? ? ? --name gitlab \
? ? ? ? gitlab/gitlab-ce:版本-ce.0
三寺酪、配置修改
3.1 拉取代碼的http和ssh端口修改
頁面訪問的時候,通過docker的端口映射可隨意修改映射即可替劈。但是拉取代碼的時候需要用到http或者ssh寄雀,此時的端口和地址就不對了,必須要修改陨献。修改方式如下:
進入gitlab容器
vi /etc/gitlab/gitlab.rb
external_url '真實訪問gitlab的地址盒犹,例如http://ip:port'
gitlab_rails['gitlab_ssh_host'] = 'ssh訪問gitlab的IP或者域名'
gitlab_rails['gitlab_shell_ssh_port'] =?ssh訪問gitlab的端口,實際依然是22眨业,可通過docker映射修改
gitlab-ctl reconfigure
退出并重啟容器(注意急膀,如果修改了端口,那么docker映射的端口也需要改)
3.2 https配置
準備證書龄捡,參考openssl生成10年證書卓嫂,并拷貝到容器的“/var/opt/gitlab/nginx/certs”下(也可以放其他地方)
進入容器
vi /etc/gitlab/gitlab.rb
external_url '真實訪問gitlab的地址,例如https://ip:port'
nginx['redirect_http_to_https'] = true
nginx['ssl_certificate'] = "/var/opt/gitlab/nginx/certs/證書.crt"
nginx['ssl_certificate_key'] = "/var/opt/gitlab/nginx/certs/證書.key"
letsencrypt['enable'] = false
letsencrypt['auto_renew'] = false
nginx['listen_port'] = https端口墅茉,默認443
nginx['listen_https'] = true
gitlab-ctl reconfigure
查看nginx配置是否正確(注意這個文件中同時監(jiān)聽了http和https) cat /var/opt/gitlab/nginx/conf/gitlab-http.conf
listen *:端口 ssl http2;
ssl_certificate /var/opt/gitlab/nginx/certs/證書.crt;
ssl_certificate_key /var/opt/gitlab/nginx/certs/證書.key;
退出并重啟容器
注意:如果是自簽證書命黔,客戶端拉取項目的時候會因為無法驗證證書而失敗呜呐,需要關(guān)閉證書校驗:git -c http.sslVerify=false clone 項目地址就斤;如果用ssh則不影響
全局關(guān)閉校驗:git config --global http.sslVerify false
四、備份還原和數(shù)據(jù)遷移
4.1 說明
注意蘑辑,此方法備份的數(shù)據(jù)只支持相同版本的gitlab還原(大版本不行洋机,小版本沒試過)。
此方法也支持服務(wù)器部署和docker部署的同版本之間數(shù)據(jù)遷移洋魂。
4.2 步驟
進入容器
gitlab-rake gitlab:backup:create
備份路徑:/var/opt/gitlab/backups/xxxx_yyyy_MM_dd_version_gitlab_backup.tar
如果想要遷移數(shù)據(jù)绷旗,可將此文件拷貝到新服務(wù)對應(yīng)目錄,并執(zhí)行后續(xù)還原操作即可副砍。
注意:還原操作會清空gitlab的全部數(shù)據(jù)衔肢,然后導入備份數(shù)據(jù)。
進入容器
gitlab-rake gitlab:backup:restore BACKUP=/var/opt/gitlab/backups/xxxx_yyyy_MM_dd_version
還原后可直接通過頁面人工確認是否成功豁翎,數(shù)據(jù)是否有遺漏角骤。如果還原過程有錯誤,可執(zhí)行以下命令檢驗
gitlab-rake gitlab:check SANITIZE=true