windows從零安裝docker到架好gitlab 希望也能幫忙到在架設gitlab的朋友們
真的不懂docker 跟著做至少架起來是沒什麼大問題的
基本上 我是參考這篇 與docker hub裡的這篇image來去設定的 不過目前公司只有開放內網 所以踩了很多雷,我調整了一些設定
我的環境為windows 10 專業版 所以先記錄著win10的操作方式,造著以下步驟走,應該不會有什麼大問題才是
並且,安裝的環境為不會關機的電腦,關機之後必須重新run container
附帶一提 windows 10 家用版是沒辦法安裝的 去升級吧
首先打開 控制台\所有控制台項目\程式和功能 開啟或關閉windows功能 將Hyper-V及容器打開
使用windows的搜尋功能 尋找power shell,並用系統管理員打開
或著你可以下載 cmdr 一個也挺方便的cmd工具 打開poweshell的admin模式
現在我們的docker已經架好 一切準備好了 開始架gitlab吧!
首先 我們來安裝docker UI (可裝可不裝 可以協助觀察狀態 我自己是看得蠻爽的)
指令碼
docker run -d -p 9000:9000 --privileged -v /var/run/docker.sock:/var/run/docker.sock uifd/ui-for-docker
好了之後就可以打開http://localhost:9000 去看到docker UI囉!
接下來 透過文件我們可以知道 我們需要架Postgresql做為我們的資料庫
那我們繼續安裝
指令碼
docker run --name gitlab-postgresql -d --env 'DB_NAME=gitlabhq_production' \
--env 'DB_USER=帳號(自己命名)' --env 'DB_PASS=密碼(自己命名)' \
--env 'DB_EXTENSION=pg_trgm' \
--volume /srv/docker/gitlab/postgresql:/var/lib/postgresql sameersbn/postgresql:9.6
安裝好了 還有下一個資料庫 redis
指令碼
docker run --name gitlab-redis -d --volume /srv/docker/gitlab/redis:/var/lib/redis sameersbn/redis:latest
好了 我們終於要來裝最核心的gitlab了 來吧
指令碼 這裡要下載一段時間 等待吧~
打指令時反斜線要把他殺掉
首先 先下一個ipconfig指令 去查你的ipv4的ip到底在哪裡
指令碼
ipconfig
好了 我們繼續 來安裝gitlab吧
指令碼(記得刪掉反斜線)
docker run --name gitlab -d \
-h XXX.XXX.XX.XX (這邊就是要輸入剛剛查到的ip,或是你有網址的話也可以在這輸入)
--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=又臭又長的字串' \
--env 'GITLAB_SECRETS_SECRET_KEY_BASE=又臭又長的字串' \
--env 'GITLAB_SECRETS_OTP_KEY_BASE=又臭又長的字串' \
--volume /srv/docker/gitlab/gitlab:/home/git/data \
sameersbn/gitlab:10.7.2
安裝完畢 去網址那裏 開啟10080port 開啟http://你剛剛輸入的ip或網址:10080
可以看到主控台 第一次進入我們要修改新密碼
好了之後 會重整成登入畫面 帳號打root 密碼 就是剛剛輸入的新密碼
登入後,你可以在 Admin Area
中管理 GitLab 的一些 default 設定值。
安裝gitlab到這裡結束 開始你的gitlab吧!
然後 我們來裝gitlab runner
指令碼(要刪掉反斜線)
docker run -d --name gitlab-runner-docker --restart always --link gitlab \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /srv/gitlab-runner/config:/etc/gitlab-runner gitlab/gitlab-runner:latest
像gitlab註冊runner
指令碼
docker exec -it gitlab-runner-docker gitlab-runner register
註冊時需要填一些相關內容,那這些內容再哪呢?
我們先隨便開一個專案
點進去專案裡
在這裡我們就可以得到我們註冊所需的資訊
接下來 繼續註冊囉
#Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/ci):
http://我們剛剛得到的URL
#Please enter the gitlab-ci token for this runner:
{registration_token}(註冊的token)
#Please enter the gitlab-ci description for this runner:
[這邊不用打 這邊系統會跑你的機器名]: 這個runner要叫什麼名字
#Please enter the gitlab-ci tags for this runner (comma separated):
下一些tag 看你愛下啥下啥 每個tag用逗號分隔
#Whether to run untagged builds [true/false]:
這邊的意思是說 是不是可以接受ci可以跑沒有tags的版本 這邊我們選
flase
#Whether to lock the Runner to current project [true/false]:
是否將Runner鎖定到當前項目?
true
#Please enter the executor: docker, docker-ssh, parallels, shell, ssh, virtualbox, docker+machine, docker-ssh+machine:
docker
#Please enter the default Docker image (eg. ruby:2.1):
alpine:latest(不知道要下什麼就下這個)
#Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded!
註冊完成 開始撰寫 CI 吧
CI篇等我踩完雷再來分享 就先期待一下吧
另外 交代一下docker的基礎指令 如果想砍東西的時候 是蠻方便的
容器的砍法
首先 列出 容器(container)列表
docker ps -a
//或著
docker container ls
這邊我們可以觀察到container的各種狀態
然後 我們跑正在跑的容器停下來 會使用到container ID
docker container stop 貼上要的容器ID 要一口氣停掉多個用空格分隔就好
現在我們就停止了正在run的容器
來刪除吧
docker rm 你的容器ID
刪除完成
圖像(image)的刪法
首先 把列表列出來
docker image ls
然後 我們就可以使用image id來去做刪除
docker rmi 你的image id
刪完 收工!
有任何疑問,歡迎提出,但是我不一定有能力回答你 T_T