通過Docker搭建自己的gitlab


獲取鏡像

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM