1. 程式人生 > >Docker-Gitlab 安裝部署筆記

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

參考文件