獲取鏡像
docker pull beginor/gitlab-ce:11.3.0-ce.0
運行
通常會將 GitLab 的配置 (etc) 、 日志 (log) 、數據 (data) 放到容器之外, 便於日后升級, 因此請先准備這三個目錄。
sudo mkdir -p /mnt/sda1/gitlab/etc sudo mkdir -p /mnt/sda1/gitlab/log sudo mkdir -p /mnt/sda1/gitlab/data
准備好這三個目錄之后, 就可以開始運行 Docker 鏡像了。 我的建議是使用unless-stopped
作為重啟策略, 因為這樣可以手工停止容器, 方便維護。
完整的運行命令如下:
docker run \ --detach \ --publish 8443:443 \ --publish 8080:80 \ --name gitlab \ --restart unless-stopped \ --volume /mnt/sda1/gitlab/etc:/etc/gitlab \ --volume /mnt/sda1/gitlab/log:/var/log/gitlab \ --volume /mnt/sda1/gitlab/data:/var/opt/gitlab \ beginor/gitlab-ce:11.3.0-ce.0
升級
小版本升級(例如從 8.8.2 升級到 8.8.3), 參照官方的說明, 將原來的容器停止, 然后刪除:
docker stop gitlab
docker rm gitlab
然后重新拉一個新版本的鏡像下來,
docker pull beginor/gitlab-ce:11.3.0-ce.0
還使用原來的運行命令運行,
docker run \ --detach \ --publish 8443:443 \ --publish 8080:80 \ --name gitlab \ --restart unless-stopped \ --volume /mnt/sda1/gitlab/etc:/etc/gitlab \ --volume /mnt/sda1/gitlab/log:/var/log/gitlab \ --volume /mnt/sda1/gitlab/data:/var/opt/gitlab \ beginor/gitlab-ce:11.3.0-ce.0
GitLab 在初次運行的時候會自動升級, 為了預防萬一, 還是建議先備份一下 /mnt/sda1/gitlab/
這個目錄。
大版本升級(例如從 8.7.x 升級到 8.8.x)用上面的操作有可能會出現錯誤, 如果出現錯誤可以嘗試登錄到容器內部, 可以用 docker exec
, 也可以用 ssh , 依次執行下面的命令:
gitlab-ctl reconfigure
gitlab-ctl restart
默認用戶:root,密碼自己在頁面上設置
問題1:如果docker安裝並成功運行gitlab容器之后,訪問gitlab發現一直出現502錯誤。
問題描述:對於上述問題,因為我的服務器配置比較low(1G,50G),而GitLab對系統硬件有要求,主要就是內存大於2G,否則或碰到奇怪的錯誤。所以我經過幾次嘗試安裝一直顯示502錯誤。沒辦法,窮啊,那只有找解決方案。終於找到一篇相關的文章小型雲服務器搭建GitLab遇到的坑 ,核心思想是增加服務器的swap空間。這個問題竟然成功解決。
$ sudo free -h $ free -h total used free shared buff/cache available Mem: 1.8G 1.5G 68M 5.8M 242M 125M Swap: 0 0 0
解決:如果Swap 的total小於2G,可以添加Swap分區大小
sudo -i # 切換root權限 dd if=/dev/zero of=/var/swap bs=1024 count=2048000 #分區大小設為2g<br>ls -lh /var/swap # 驗證<br>mkswap /var/swap #啟動分區<br>swapon /var/swap #激活
最后大功告成:
問題2:【docker】【Gitlab】gitlab中clone項目時,IP地址是一串數字(內網Gitlab的IP地址不正確)的問題解決
首次在內網搭建Gitlab環境,在成功后在Gitlab上新建了一個項目。
然而在IDEA上clone項目時發現,項目地址如下:
git@9b2ba0249252:dev/python_gui_test.git
或者這樣
http://0096ce63c43f/dev/python_gui_test.git
然而在setting中看到的IP地址卻是虛擬機的IP地址:
但是此處是無法改變的IP地址,也就是我在IDEA進行clone項目時,還是這一串字符串,這是沒法clone使用的
解決:
1.如果你掛載了配置文件在宿主機上,啟動命令如下
docker run \ --detach \ --publish 8443:443 \ --publish 8080:80 \ --name gitlab \ --restart unless-stopped \ --volume /mnt/sda1/gitlab/etc:/etc/gitlab \ --volume /mnt/sda1/gitlab/log:/var/log/gitlab \ --volume /mnt/sda1/gitlab/data:/var/opt/gitlab \ beginor/gitlab-ce:11.3.0-ce.0
2.那么你可以直接查找文件
find /mnt/sda1/gitlab/ -name gitlab.rb
修改文件
vi /mnt/sda1/gitlab/etc/gitlab.rb
文件中增加
external_url 'http://192.168.182.135'
值為‘http://gitlab所在服務器的IP’ 需要注意的是,不加端口!!
3.重啟gitlab,查看服務中 項目的拉取地址是否改變
docker restart gitlab
修改成功:
注意:如果不是80端口,則不能直接復制地址使用,必須加上端口
例如:
# ssh
git@192.168.182.135:8080:dev/python_gui_test.git # http http://192.168.182.135:8080/dev/python_gui_test.git # http+賬號密碼 http://liugp:1331301116@192.168.182.135:8080/dev/python_gui_test.git