《Git團隊協作》之Docker快速搭建GitLab私有倉庫
Git在當前團隊開發中重要作用已然無須多言。Git、GitHub、Bitbucket、GitLab之間的聯絡與區別是什麼,看一下《Git團隊協作》這本書也能搞清楚。
本文的主要目的則是對第12章《GitLab 上自行管理的協作》進行一些補充。在本書中安裝GitLab是通過虛擬機器的方式,略微重了些,如果我們可以用Docker來安裝,是不是可以更方便些呢( 離不開的工具之《Docker開發指南》)?答案當然是可以的!
基礎指令
最基礎的docker 命令如下:
sudo docker run -d \
--hostname gitlab.example.com \
-p 443:443 \
-p 80:80 \
-p 22:22 \
--name gitlab \
--restart always \
-v /srv/gitlab/config:/etc/gitlab \
-v /srv/gitlab/logs:/var/log/gitlab \
-v /srv/gitlab/data:/var/opt/gitlab \
gitlab/gitlab-ce:latest
下面解釋一下重要的引數:
其中--hostname 引數對應的是私有倉庫的域名,這個域名可以是公開註冊的也可以是自己私有dns命名的,但是域名對應的ip必須與部署GitLab的伺服器的ip保持一致。
-p 對應的是埠對映,443埠用於HTTPS服務、80埠用於HTTP服務、22埠用於ssh服務。我們可以根據實際需要和伺服器的情況開放相應的埠:比如我們可以只使用HTTPS服務,那麼就只需要對映443埠即可。
--name 是容器名。
--restart 為true的時候,伺服器重啟的時候,容器也會被自動重啟。
-v 是伺服器目錄與容器目錄的對應關係,會把GitLab容器上的檔案、資料儲存在伺服器的對應目錄(實際上伺服器上的目錄名也可以自擬)上,即便容器被刪除了,只要資料還在,重新啟動一個容器依然可以提供服務。
最後一行 gitlab/gitlab-ce:latest 是映象的名稱和版本, gitlab/gitlab-ce 是社群版、 gitlab/gitlab-ee是企業版。
實現HTTPS服務的細節
需要注意的是要想讓GitLab真正提供HTTPS服務,還必須通過證書加密?,加密證書可以免費申請、購買或者通過自簽名的方式獲得(《HTTPS權威指南》),此處不再贅述。
1、下面假設你已有一個域名 gitlab.example.com,並且已經獲得了該域名對應的證書:gitlab.example.com.key、gitlab.example.com.crt 。
2、在伺服器的 "/srv/gitlab/config" 目錄(對應的是容器裡的"/etc/gitlab"目錄)下建立一個 ssl目錄
sudo mkdir -p /srv/gitlab/config/ssl
3、將gitlab.example.com.key、gitlab.example.com.crt 拷貝到伺服器的 "/srv/gitlab/config/ssl"目錄中
4、進入gitlab容器並開啟配置檔案
sudo docker exec -it gitlab vi /etc/gitlab/gitlab.rb
5、將檔案中的相關行修改如下:
external_url "https://gitlab.example.com"
nginx['redirect_http_to_https'] = true
nginx['ssl_certificate'] = "/etc/gitlab/ssl/gitlab.example.com.crt"
nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/gitlab.example.com.key"
6、重啟容器
sudo docker restart gitlab
7、訪問 https://gitlab.example.com,就可以進入到相應的GitLab私有倉庫頁面了。
當然,上述的操作還是有些繁瑣,有沒有更好的方法?請見下集 《Docker Compose例項之nginx反向代理GitLab》
相關文章
- gitlab私有倉庫搭建Gitlab
- git倉庫之gitlab搭建使用Gitlab
- docker 私有倉庫搭建Docker
- docker搭建私有倉庫Docker
- 利用 Docker 快速搭建 git 倉庫 Gitlab 與程式碼審閱 Gerrit 平臺DockerGitlab
- Docker搭建Harbor私有倉庫Docker
- Docker倉庫之Registry私有映象倉庫的搭建與使用Docker
- Docker入門-搭建docker私有倉庫Docker
- 6、Git之團隊協作機制Git
- 用Docker搭建cnpm私有倉庫以及私有倉庫的使用DockerNPM
- 【Harbor學習筆記】-教你快速搭建Docker私有倉庫筆記Docker
- docker搭建私人git倉庫DockerGit
- Docker搭建私有倉庫Registry&HarborDocker
- docker使用容器搭建本地私有倉庫Docker
- Docker基礎-搭建本地私有倉庫Docker
- 使用 docker + verdaccio 搭建npm私有倉庫DockerNPM
- Docker-------私有倉庫 Harbor 的搭建Docker
- Docker私有倉庫之Harbor神器Docker
- 版本控制系統之基於httpd搭建私有git倉庫httpdGit
- 私有Docker倉庫Docker
- 教你學會Git——團隊協作Git
- docker筆記37-docker私有倉庫的搭建Docker筆記
- Docker 5分鐘搭建GitLab程式碼倉庫DockerGitlab
- 手把手教你搭建Docker私有倉庫HarborDocker
- Docker建立私有倉庫Docker
- Docker信任私有倉庫Docker
- 搭建python私有倉庫Python
- Jenkins之Nexus搭建Maven私有倉庫教程JenkinsMaven
- 容器技術之Docker私有映象倉庫docker-distributionDocker
- Docker registry私有倉庫(七)Docker
- 容器技術之Docker私有映象倉庫harborDocker
- Dockerfile指令與Docker-compose容器編排-搭建docker私有倉庫Docker
- 使用docker快速搭建gitlab私服DockerGitlab
- GitLab私有倉庫概述及環境部署Gitlab
- 搭建私有的Composer倉庫
- NPM 私有倉庫的搭建NPM
- 多人協同開發,git workflow 提高團隊協作能力Git
- go module,使用gitlab私有倉庫作為專案的依賴包GoGitlab