docker下安裝gitlab
下載Gitlab
sudo docker pull gitlab/gitlab-ce:latest
啟動Gitlab
用下面的命令啟動一個預設配置的Gitlab。如果我們只在本機測試使用的話,將hostname替換為localhost。如果需要讓外部系統也能訪問的話使用外網IP地址。
sudo docker run --detach \ --hostname gitlab.example.com \ --publish 443:443 --publish 80: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 \ gitlab/gitlab-ce:latest
首次啟動可能比較慢,需要等待一分鐘左右的時間。我們可以使用sudo docker ps
命令檢視當前所有Docker容器的狀態。當它的狀態由starting變為執行時間時,說明成功啟動了。我們直接使用上面配置的IP地址(如localhost
)在瀏覽器中訪問即可。
初次使用需要我們建立預設管理員密碼,隨便指定一個就行了。然後我們需要註冊一個普通使用者。以後的使用方法和Github這樣的工具很相似了。
配置Gitlab
剛剛啟動Gitlab的時候需要我們輸入一個密碼,這個密碼是管理員使用者的密碼。我們在登入那裡使用root作為使用者名稱,然後用剛剛設定的密碼,就可以以管理員身份登入Gitlab。
登入進去之後,點選右上角的齒輪圖示,即可進入到管理員頁面。在這裡我們可以設定很多東西。比如說,預設情況下每個使用者只能建立10個倉庫,我們可以改變這個設定。在管理員頁面點選右面的齒輪,再點選設定,就會進入到系統設定中。然後找到Default projects limit一項,我們給它設個小目標,設它一個億,這樣就相當於無限倉庫了。當然如果你實際硬碟滿了也就不能在建立更多專案了。
如果這些配置還是不能滿足你的需求的時候,還可以直接配置Gitlab。首先進入到Docker環境中。我們使用下面的命令進入Docker環境的bash中。gitlab是剛剛指定的Gitlab名稱。
sudo docker exec -it gitlab /bin/bash
然後就進入了Docker的環境中,我們可以把它當作一個獨立的系統來使用。然後編輯/etc/gitlab/gitlab.rb
檔案,這是Gitlab的全域性配置檔案。所有選項都可以在這裡配置。
nano /etc/gitlab/gitlab.rb
vi gitlab.rb
external_url "http://10.103.240.36:8080"
詳細的配置方法我也不會,直接看官方文件吧。
更新Gitlab
以後如果需要更新Gitlab版本,首先需要停止並刪除當前的Gitlab例項。
sudo docker stop gitlab
sudo docker rm gitlab
然後在拉取最新版的Gitlab。
sudo docker pull gitlab/gitlab-ce:latest
然後在使用上次的配置執行Gitlab即可。不用擔心資料會丟失。只要你的volume引數指定還和上次一樣,Gitlab就會自動讀取這些配置。
sudo docker run --detach \
--hostname gitlab.example.com \
--publish 443:443 --publish 80: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 \
gitlab/gitlab-ce:latest
最後來看看使用Docker的優勢。還是在Gitlab的Bash中。我們依次輸入下面的命令,看看有什麼反應。
ruby --version
git --version
redis-cli --version
psql --version
不出意外的話應該會顯示對應軟體的版本。我們看到Gitlab使用了4個開源軟體或執行環境:ruby、git、redis和postgresql。如果我們手動安裝Gitlab的話,這幾個軟體也必須分別安裝和配置好。這個任務的難度可是非常大的。而且如果需要在多臺機器上配置,那麼任務量就更大了。但是如果使用Docker的話,我們甚至完全沒必要知道這幾個軟體的存在,簡單兩條命令即可建立和執行Gitlab。這正是Docker的魅力,難怪現在越來越多的公司在使用Docker。