Docker-Gitlab 安裝部署筆記
Docker-Gitlab
Docker是一個開源的應用容器引擎,讓開發者可以打包他們的應用以及依賴包到一個可移植的容器中,然後釋出到任何流行的 Linux 機器上,也可以實現虛擬化。容器是完全使用沙箱機制,相互之間不會有任何介面。這篇文章是我練習時,在網上找了很多資料,記錄下來的筆記,給大家演示一下我的Docker安裝Gitlab的安裝歷程,O(∩_∩)O哈哈~
安裝環境 :CentOS
伺服器 :騰訊雲
通過Docker Compose安裝Gitlab
Docker Compose是一個用來定義和運行復雜應用的Docker工具。使用Compose,你可以在一個檔案中定義一個多容器應用,然後使用一條命令來啟動你的應用,完成一切準備工作。
一個使用Docker容器的應用,通常由多個容器組成。使用Docker Compose,不再需要使用shell指令碼來啟動容器。在配置檔案中,所有的容器通過services來定義,然後使用docker-compose指令碼來啟動,停止和重啟應用,和應用中的服務以及所有依賴服務的容器。完整的命令列表如下:
build
構建或重建服務help
命令幫助kill
殺掉容器logs
顯示容器的輸出內容port
列印繫結的開放埠ps
顯示容器pull
拉取服務映象restart
重啟服務rm
刪除停止的容器run
執行一個一次性命令scale
設定服務的容器數目start
開啟服務stop
停止服務up
建立並啟動容器
安裝Docker Compose
執行下邊的命令來安裝 Compose:
curl -L https://github.com/docker/compose/releases/download/1.3.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
注意:如果你在安裝的時候出現了 “Permission denied” 的錯誤資訊,這說明你的 /usr/local/bin 目錄是不可寫的,你需要使用超級使用者來安裝。執行 sudo -i , 然後執行上邊的兩個命令,然後 exit 退出。
可選,你也可以利用pip方式進行安裝。
CentOS上需要先行安裝yum的一個額外的包,這個包裡面才有Python-pip,預設的沒有。執行下邊命令檢查Linux是否安裝Python-pin包:
yum install python-pip
- 本地不存在Python-pin包,執行命令:
yum -y install epel-release
- 執行成功之後,再次執行命令安裝Python-pin包:
yum install python-pip
- 若想對Python-pin包升級,執行命令:
pip install --upgrade pip
- pip工具就安裝好了,就可以安裝Docker-Compose了,執行命令:
sudo pip install -U docker-compose
到這裡Compose已經安裝完成。你可以使用 docker-compose --version
來進行測試 。
利用Docker Compose安裝Gitlab
利用Docker Compose能夠快速搭建Gitlab,執行下面命令配置:
wget https://raw.githubusercontent.com/sameersbn/docker-gitlab/master/docker-compose.yml
啟動Gitlab,執行命令:
docker-compose up
到這裡安裝就結束了;Gitlab安裝完成了,你可以執行docker ps
來檢視容器的執行。
通過Docker安裝Gitlab
利用Docker下載Gitlab映象
首先我們需要先拉取gitlab映象到本地:
docker pull sameersbn/gitlab:9.2.5
當然也可以使用latest標籤去拉取程式碼倉庫HEAD中最新的版本:
docker pull sameersbn/gitlab:latest
或者,你可以直接在本地建立映象:
docker build -t sameersbn/gitlab github.com/sameersbn/docker-gitlab
建立容器
通過下面三個步驟來啟動gitlab、postgresql和redis三個container。
步驟1. 啟動postgresql container:
docker run --name gitlab-postgresql -d \
--env 'DB_NAME=gitlabhq_production' \
--env 'DB_USER=gitlab' --env 'DB_PASS=password' \
--env 'DB_EXTENSION=pg_trgm' \
--volume /srv/docker/gitlab/postgresql:/var/lib/postgresql \
sameersbn/postgresql:9.6-2
步驟2. 啟動redis container:
docker run --name gitlab-redis -d \
--volume /srv/docker/gitlab/redis:/var/lib/redis \
sameersbn/redis:latest
步驟3. 啟動gitlab container:
docker run --name gitlab -d \
--link gitlab-postgresql:postgresql --link gitlab-redis:redisio \
--publish 10022:22 --publish 10080:80 \
--env 'GITLAB_PORT=10080' --env 'GITLAB_SSH_PORT=10022' \
--env 'GITLAB_SECRETS_DB_KEY_BASE=long-and-random-alpha-numeric-string' \
--env 'GITLAB_SECRETS_SECRET_KEY_BASE=long-and-random-alpha-numeric-string' \
--env 'GITLAB_SECRETS_OTP_KEY_BASE=long-and-random-alpha-numeric-string' \
--volume /srv/docker/gitlab/gitlab:/home/git/data \
sameersbn/gitlab:9.2.5