摘要:安裝這里以發行版為例,在中輸入一下命令安裝最新的注意如果你使用了阿里云最新推出的鏡像,那么可以省略本節的步驟。因為阿里云的這個鏡像已經自帶了版的,版本比較新,可以直接使用。
docker用來隔離應用還是很方便的,一來本身的操作較為簡單,二來資源占用也比虛擬機要小得多,三來也較為安全,因為像數據庫這樣的應用不會再全局暴露端口,同時應用間的通信通過加密和端口轉發,更加安全。
Gitlab是目前比較流行的開源類Github代碼管理平臺。Gitlab使用Rails開發,使用PostgreSQL或MySQL數據庫,Redis做緩存。一般自己搭建私有代碼倉庫,Gitlab通常是首選。這里簡單介紹一下dockerized Gitlab。
Gitlab的docker鏡像早已有人做好了,并且維護相當不錯。大家可以前往其GitHub倉庫了解該鏡像的情況。官方repo的readme中已經有詳細的安裝配置方案,這里我簡單的梳理一下部署流程。
安裝Docker這里以Ubuntu 14.04發行版為例,在bash中輸入一下命令安裝最新的docker:
sudo apt-get purge docker.io curl -s https://get.docker.io/ubuntu/ | sudo sh sudo apt-get update sudo apt-get install lxc-docker
注意: 如果你使用了阿里云最新推出的Docker鏡像,那么可以省略本節的步驟。因為阿里云的這個鏡像已經自帶了1.2版的docker,版本比較新,可以直接使用。
安裝docker-gitlab使用如下命令可以使Docker下載對應版本的Gitlab鏡像:
docker pull sameersbn/gitlab:7.5.3
上面的命令下載7.5.3版的Gitlab,如果想下載最新版本,可以輸入以下命令:
docker pull sameersbn/gitlab:latest
待下載完成后就算完成安裝了。
也可以Clone剛才的提到的倉庫,然后在本機上build鏡像:
git clone https://github.com/sameersbn/docker-gitlab.git cd docker-gitlab docker build --tag="$USER/gitlab" .
注意上面最后一行命令結尾有一個"."符號,不要掉了。
安裝PostgreSQLGitlab推薦使用PostgreSQL作為數據庫。既然使用了docker,那么我們為何不考慮把所有的組件都用docker包裝起來?我們一樣可以下載PostgreSQL的鏡像完成安裝,這種安裝更加便捷。
首先輸入以下命令下載PostgreSQL鏡像:
docker pull sameersbn/postgresql:latest
然后我們要為數據庫默認的表空間建立目錄以存放數據:
mkdir -p /opt/postgresql/data
這里/opt/postgresql/data部分可以替換成你自己希望建立的地址。
如果是使用SELinux,那么還需要改變一下這個目錄的安全設置:
sudo chcon -Rt svirt_sandbox_file_t /opt/postgresql/data
如果沒有使用SELinux,可以跳過上面一條命令。
最后使用以下命令行啟動數據庫:
docker run --name=postgresql -d -e "DB_NAME=gitlabhq_production" -e "DB_USER=gitlab" -e "DB_PASS=password" -v /opt/postgresql/data:/var/lib/postgresql sameersbn/postgresql:latest
這里,"-e"選項后面的內容請不要隨意變更,這里的配置都是Gitlab默認的數據庫配置,如果沒有在后面Gitlab鏡像啟動的設置里面做相應的修改的話,這里的修改會讓程序無法正常運行。
安裝Redis同樣,我們可以使用docker來安裝Redis:
docker pull sameersbn/redis:latest
然后啟動它:
docker run --name=redis -d sameersbn/redis:latest啟動gitlab
在最終啟動Gitlab之前,我們還需要為Gitlab創建一個目錄用來存放提交上來的代碼,docker-gitlab內部使用/home/git/data這個目錄存放代碼,我們在容器外部創建一個目錄然后在啟動的時候掛載到這個路徑即可:
mkdir -p /opt/gitlab/data mkdir -p /opt/gitlab/backups
同樣,如果使用SELinux,需要修改目錄的安全配置:
sudo chcon -Rt svirt_sandbox_file_t /opt/gitlab/data sudo chcon -Rt svirt_sandbox_file_t /opt/gitlab/backups
在完成上面所有的步驟以后,我們可以用以下命令啟動Gitlab:
docker run --name="gitlab" -d -e "GITLAB_PORT=10080" -e "GITLAB_SSH_PORT=10022" -e "GITLAB_BACKUPS=monthly" -p 10022:22 -p 10080:80 -v /opt/gitlab/data:/home/gitl/data -v /opt/gitlab/backups:/home/git/data/backups sameersbn/gitlab:7.5.3
上面的命令將使用10080作為Gitlab的Web訪問端口,10022將作為ssh push和pull代碼的端口。
在本地可以使用瀏覽器打開http://localhost:10080來訪問Gitlab,初始登錄網站使用root賬戶,用戶名為root,密碼為:5iveL!fe,登錄后需要立即修改密碼。
這里解釋一下各參數:
-d: 后臺運行
-e:配置Gitlab運行的環境變量,這個參數很重要,具體有哪些環境變量,后面列舉
-p: 端口轉發規則
-v: 共享目錄掛載,即docker容器內外數據共享
Gitlab的環境變量配置比較多,這里列舉一下比較重要的Gitlab的環境變量:
GITLAB_HOST: 這個是Gitlab服務器的hostname,你需要將此設定為網站的域名或者ip(不帶端口號),默認值為localhost,這個值會被Gitlab用來生成repo的鏈接,所以必須要設置。否則,在創建的repo中,會發現所有的repo鏈接都是以localhost為hostname。
GITLAB_PORT Gitlab網站的訪問端口,這里的設置要結合端口轉發一起設置,否則會導致網站無法訪問,默認值為80
GITLAB_SSH_PORT Gitlab的SSH代碼提交方式使用的SSH端口,這里的設置要結合端口轉發一起設置,否則會導致代碼無法提交,默認值為22。如果是在VPS上部署,這個值請使用別的端口,比如上面提到的10022端口,否則會與VPS原本的SSH端口產生沖突,造成SSH無法登錄VPS
GITLAB_BACKUPS Gitlab的自動備份配置,有disable, daily, weekly, monthly四個可選值,默認為disable。建議打開自動備份
GITLAB_BACKUP_DIR Gitlab自動備份目錄,默認值為/home/git/data/backups
其他的參數請參考repo中的README.md.
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/26344.html
摘要:最近很火,所以,也跟著未來的大趨勢學下,并將應用到項目開發中。容器是完全使用沙箱機制,相互之間不會有任何接口類似的更重要的是容器性能開銷極低。在中搜索搜索的范圍是官方鏡像和所有個人公共鏡像。的應用都是以這種格式發布到倉庫中,供大家使用。 Docker 最近很火,所以,也跟著未來的大趨勢學下docker,并將docker 應用到項目開發中。 一、什么是docker Docker 是一個開...
摘要:介紹搭建與維護基于鏡像圖片來自于公社前端,用于頁面及走或協議后端服務,采用框架,通過實現后臺服務及多進程開啟服務,用于用戶上傳進行版本克隆及上傳。 gitlab介紹 GitLab搭建與維護(基于Docker鏡像sameersbn/docker-gitlab) 圖片來自于: Linux公社(https://www.linuxidc.com) showImg(https://segment...
摘要:如果查到的不是版的內核,可以用來升級然后更新啟動加載器來加載新內核完成安裝后,重啟宿主機來啟用新的內核重啟之后,可以用確認是否運行了新版本內核。如果是較低版本的系統,需要先更新內核。然后重復上面的步驟即可。 本人的學習筆記,主要是對《我的第一本Docker書》、《Docker —— 從入門到實踐》的學習記錄,并結合其他各種資源的學習。這次記錄了4種常見系統的Docker安裝方法,這些系...
摘要:是一個為測試工程師開發的部署框架,使用語言編寫,為了解決測試團隊在測試過程中的部署問題。部署執行方式簡單,支持命令行與自動化測試可緊密合作作為一個為測試工程師開發的部署框架,通過命令行進行自動化部署是第一選擇。 ...
摘要:起因某種原因不能使用于是用寫了一個自動部署腳本項目介紹用寫的部署腳本可配置源代碼目錄目標目錄緩存目錄用來部署后刪除忽略目錄文件他們在本地的變化不會被部署支持可配置版本庫和分支支持一個同時往多個目錄部署支持手動在命令行觸發支持網頁界面操作 Summer-PHP-Deploy 起因 某種原因, 不能使用Jenkins, 于是用PHP寫了一個自動部署腳本 項目介紹 用PHP寫的部署腳本 可...
閱讀 3782·2021-09-23 11:32
閱讀 2451·2021-09-06 15:01
閱讀 1616·2021-08-18 10:24
閱讀 3450·2019-12-27 11:44
閱讀 3605·2019-08-30 15:52
閱讀 2512·2019-08-30 11:11
閱讀 671·2019-08-29 17:27
閱讀 600·2019-08-29 16:22