部署Gitlab
docker run -d -p 20080:80 -p 20022:22 \
--name gitlab --restart=unless-stopped \
--hostname gitlab.frank.com \
-v /home/frank/volumes/gitlab/config:/etc/gitlab \
-v /home/frank/volumes/gitlab/logs:/var/log/gitlab \
-v /home/frank/volumes/gitlab/data:/var/opt/gitlab gitlab/gitlab-ce:rc
配置好hosts,即可訪問gitlab.frankcom
go get 獲取代碼
生成證書
為了讓go get可以獲取代碼膊爪,我們需要使用https,自簽證書部分查看參考資料《實(shí)現(xiàn)局域網(wǎng)https域名訪問內(nèi)網(wǎng)服務(wù)》
配置Nginx https代理
server {
listen 80;
listen 443 ssl;
server_name [gitlab.frank.com;](http://gitlab.frank.com;/)
charset utf-8;
access_log /var/log/nginx/gitlab.access.log;
error_log /var/log/nginx/gitlab.error.log;
ssl on;
ssl_certificate /etc/nginx/ssl/server.crt;
ssl_certificate_key /etc/nginx/ssl/server.key;
ssl_session_timeout 10m;
ssl_session_cache shared:SSL:10m;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
proxy_pass http://gitlab.frank.com:20080;
}
location ~.*\.(js|css|png)$ {
proxy_pass http://gitlab.frank.com:20080;
}
}
其他方案
上述部署成功以后,go get 便可以訪問到gitlab.frank.com中的代碼了兴使。還有一種方案是使用git config 將https替換為ssh,我嘗試下git clone 沒有問題照激,但是go get依賴去訪問https的方案发魄,所以只能老老實(shí)實(shí)自簽http是證書。