在成功完成docker的基礎實驗之后,嘗試着使用docker搭建自己的gitlab,用來存放自己的代碼。本文主要介紹使用docker搭建gitlab過程中遇到的問題,我的服務器系統是:Ubuntu Server 14.04.1 LTS 64位
在搭建過程中遇到了很多問題,比較突出的三個問題是:
1.docker下載鏡像緩慢,每次需要大概幾個小時;
2.docker下載完成之后,運行鏡像服務器死機;
3.docker安裝並成功運行gitlab容器之后,訪問gitlab發現一直出現502錯誤。
下面將這三個問題穿插在安裝搭建gitlab過程中進行解決,有的問題解決方案可能不止一種,也有的問題會與服務器的版本,服務器的配置相關。
一、gitlab鏡像安裝准備工作
1.對於上述提到的第三個問題,因為我的服務器配置比較low(1G,50G),而GitLab對系統硬件有要求,主要就是內存大於2G,否則或碰到奇怪的錯誤。所以我經過幾次嘗試安裝一直顯示502錯誤(糾結了三四天,查了兩天的資料)。沒辦法,窮啊,那只有找解決方案。終於找到一篇相關的文章小型雲服務器搭建GitLab遇到的坑 ,核心思想是增加服務器的swap空間。這個問題竟然成功解決。
查看內存信息:
sudo free -h
ubuntu@VM-50-13-ubuntu:~$ free -h total used free shared buffers cached Mem: 993M 181M 812M 376K 34M 77M -/+ buffers/cache: 70M 923M Swap: 0B 0B 0B
可以看到swap的空間為0B ,接下來增加swap空間具體操作:
sudo -i # 切換root權限 dd if=/dev/zero of=/var/swap bs=1024 count=2048000 #分區大小設為2g
ls -lh /var/swap # 驗證
mkswap /var/swap #啟動分區
swapon /var/swap #激活
執行完上述命令,再次使用free -h命令可以看到Swap變成2GB
二、安裝完成docker(可參考docker----起步)。
在下載鏡像的時候,發現下載的很慢,很捉雞。需要配置加速器,docker----起步文章中配置的加速器,好像與我的系統似乎不搭噶,最后看騰訊雲的鏡像加速器才發現,我配置加速器的地方錯了,因為我的系統是Ubuntu14 所以應該配置在/etc/default/docker中。最后我將加速器配置成阿里雲的鏡像加速器 在注冊完成之后,我獲得了我的專屬加速器地址(雖然不知道真假),具體查看方式是,在容器鏡像服務-->鏡像加速器中可以看到。
vim /etc/default/docker #然后修改其中的DOCKER_OPTS
如我的配置修改結果為:
# Use DOCKER_OPTS to modify the daemon startup options. DOCKER_OPTS="--registry-mirror=https://dg9t1zch.mirror.aliyuncs.com" # 改地址為阿里雲給我的鏡像加速器地址
重啟docker服務后,然后執行 sudo docker info ,可以看到輸出中有如下信息:
Registry Mirrors: https://dg9t1zch.mirror.aliyuncs.com/
然后下載鏡像,我這里的鏡像是阿里雲上的一個鏡像,執行命令,你會發現下載速度非常快:
docker run --detach \ --publish 443:443 --publish 10080:80 --publish 22:22 \ --name gitlab \ --restart always \ --volume /srv/gitlab/config:/etc/gitlab \ --volume /srv/gitlab/logs:/var/log/gitlab \ --volume /srv/gitlab/data:/var/opt/gitlab \ twang2218/gitlab-ce-zh:latest # 該鏡像是aliyun上的一個鏡像,地址https://cr.console.aliyun.com/#/imageDesc/cn-hangzhou/lab99/gitlab-ce-zh/detail
三、SSH端口和這里的22端口可能會有沖突,導致連接不上去,因此設置ssh端口為別的端口就可以了
vim /etc/ssh/sshd_config # 找到里邊對應的Port,將22修改為1022或別的端口
重啟ssh服務。
然后訪問服務器地址+10080端口,有時候還是會出現502錯誤,需要稍等一會,然后重新刷新幾次就可以了。
看到配置完成的gitlab特別開心=-=。