如何使用 Docker 架設 Gitlab


git 真的是程式控管的好工具,市面上有很多git服務,如:Github、Bitbucket、SourceForge…等等,但有些限制,有的是提供五個私人倉,其它需要公開,如果需要增加私人倉庫時,就需要在付費。

如果是公司開發需要時,但又不想要將程式外流到外部主機上, GitLab 是一個好的選擇,以下就教如何快速使用 Docker 建立一個你的 GitLab。

官方文件

https://docs.gitlab.com/omnibus/docker/

主要提供三種方式進行安裝:
Installation
The GitLab Docker images can be run in multiple ways:

Using Docker Engine
Using Docker Compose
Using Docker swarm mode

這部份我使用的是第一種比較快,只需要一個指令即可完成。

環境配置

  • CPU:雙核心
  • 硬碟:20GB
  • 記憶體:4GB
    (此規格足夠500用戶使用)

安裝流程

一、設定環境變數:
export GITLAB_HOME=/srv/gitlab

二、執行 docker run 指令
--hostname gitlab.example.com 輪入你的gitlab網址
--publish 2022:22 外部2022 port -> 22 port (之前使用 22:22 port,執行後會出現 Error starting userland proxy: listen tcp4 0.0.0.0:22: bind: address already in use.所以特別改了port號,若無可直接使用 22:22 port)
--volume $GITLAB_HOME/config:/etc/gitlab:Z (:Z 在 CentOS 環境有開啟 selinux 時,需要加入 Z ,提供 Docker 可以執行的權限)

[root@location ~]$ sudo docker run --detach \
  --hostname gitlab.example.com \
  --publish 443:443 --publish 80:80 --publish 2022:22 \
  --name gitlab \
  --restart always \
  --volume $GITLAB_HOME/config:/etc/gitlab:Z \
  --volume $GITLAB_HOME/logs:/var/log/gitlab:Z \
  --volume $GITLAB_HOME/data:/var/opt/gitlab:Z \
  gitlab/gitlab-ee:latest

Unable to find image 'gitlab/gitlab-ee:latest' locally
latest: Pulling from gitlab/gitlab-ee
5d3b2c2d21bb: Pull complete 
3fc2062ea667: Pull complete 
75adf526d75b: Pull complete 
83e0be982cdd: Pull complete 
928b97e64f8f: Pull complete 
790ddba7900f: Pull complete 
746f8c872525: Pull complete 
7e5f3e7bdca6: Pull complete 
46cb31d07320: Pull complete 
Digest: sha256:7e1323b3c4d67b36b96d65dbda5e675223f5f63f8c358a5c8c8be7218203af7f
Status: Downloaded newer image for gitlab/gitlab-ee:latest
93e5127f083b745cea73c66b08a81b913f090f4a9393a57f180abb05becad9e5

[root@location ~]$ docker ps -a
CONTAINER ID   IMAGE                     COMMAND             CREATED          STATUS                             PORTS                                                             NAMES
93e5127f083b   gitlab/gitlab-ee:latest   "/assets/wrapper"   28 seconds ago   Up 27 seconds (health: starting)   0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp, 0.0.0.0:19073->22/tcp   gitlab

三、執行 docker ps -a 確認服務是否啟動,也可以使用 docker logs gitlab 查看目前 gitlab 的 log。

第一次登入 gitlab

完成後開啟瀏覽器輸入你的設定網址 http://gitlab.example.com 會出現第一次登入,請設定你的密碼,如下圖 ( 預設管理員帳號為:root )

更新完密碼後,就可以使用 root / 新密碼 進行登入

,