Ubuntu
Ubuntu 金鑰登入
建立本機上金鑰
ssh-keygen
將金鑰送到目標遠端
ssh USER@HOST 'mkdir -p ~/.ssh;cat >> ~/.ssh/authorized_keys' < ~/.ssh/id_rsa.pub
設定語系
參考連結 檢查目前語系
locale -a
安裝相對應的語系
sudo locale-gen zh_TW zh_TW.UTF-8 zh_CN.UTF-8 en_US.UTF-8
修改系統全域設定
$ sudo vim /etc/default/locale
LC_CTYPE="zh_TW.UTF-8"
LC_MESSAGES="zh_TW.UTF-8"
LC_TIME="en_US.UTF-8"
登出再登入之後,就能看見更新
更新Ubuntu
sudo apt-get update;sudo apt-get upgrade;
安裝Docker
- 更新ubuntu ATP
sudo apt-get install apt-transport-https ca-certificates
增加GPG Key
sudo apt-key adv \ --keyserver hkp://ha.pool.sks-keyservers.net:80 \ --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
因為選用Ubuntu 16.10 但目前還沒有,所以使用16.04的Link
echo "deb https://apt.dockerproject.org/repo ubuntu-xenial main" | sudo tee /etc/apt/sources.list.d/docker.list sudo apt-get update
3.確認apt裡面有沒有docker image, 有了之後並升級
apt-cache policy docker-engine
apt-get upgrade
4.更新apt-get repository sites
sudo apt-get update
5.安裝推薦的套件
sudo apt-get install linux-image-extra-$(uname -r) linux-image-extra-virtual
6.安裝docker
sudo apt-get install docker-engine
7.啟動docker服務
sudo service docker start
8.測試成功
sudo docker run hello-world
安裝Gitlab
export DOCKER_BASE=/home/aha/docker
Postgresql
- -name docker name
- -env 設定給gitlab使用
- -volume: 將本機目錄對應到 docker的 /var/lib/postgresql, 主要用來存放資料庫資料使用
docker stop gitlab-postgresql;docker rm gitlab-postgresql
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 $DOCKER_BASE/gitlab/postgresql:/var/lib/postgresql \
sameersbn/postgresql:9.5-3
Redis
- -name docker name
- -volume: 將本機目錄對應到 docker的 /var/lib/redis, 主要用來存放資料庫資料使用
docker stop gitlab-redis;docker rm gitlab-redis docker run --name gitlab-redis -d \ --volume $DOCKER_BASE/gitlab/redis:/var/lib/redis \ sameersbn/redis:latest
Gitlab
- -name : gitlab
- -link : 連結gitlab-postgresql 與 gitlab-redis
- -publish: 外部10022轉到本機22, 外部10080轉到80
- -env: 設定Gitlab 對外PORT是10080, 與 SSH 是用10022
- -volume: 將本機目錄對應到 docker的 /home/git/data, 主要用來存放使用者資料使用
- GITLAB_HOST: Host機器的IP, Gitlab Repository的位置
- GITLAB_CI_HOST: 給CI去找Gitlab的位置
sudo docker stop gitlab;sudo docker rm gitlab;
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_HOST=http://192.168.2.47' \
--env 'GITLAB_CI_HOST=http://172.17.0.4' \
--env 'GITLAB_SECRETS_DB_KEY_BASE=F7RgcWhCXpVVxgXPLTsvJtL7FmWRbP3dPRg9xbLkxH7fhW7fbPkvxvp47kgTqtCp' \
--env 'GITLAB_SECRETS_SECRET_KEY_BASE=zVkJfbKLtRPTsRLK3R3gCVcNdNLKFfTxk7zzLcxsdXVLpCWzzchnW3qRt73mJV7g' \
--env 'GITLAB_SECRETS_OTP_KEY_BASE=M9kdnj4mrzvbHm4cHFw3dftgPh3mTR4pbWJRRCJpcLgMHrdXKWppHFkKXKCVTFx9' \
--volume $DOCKER_BASE/gitlab/gitlab:/home/git/data \
sameersbn/gitlab:8.13.6
安裝GitRunner
- -name : gitlab-runner docker的名稱
- -restart: 當docker重啟的時候,自己也會啟動
- v(-volumn) : 設定與docker.sock互動的程式, 這樣GitRunner才能在docker模式下,把系統的docker給叫出來
- v(-volumn) : 將本機目錄對應到 runner上的/etc/gitlab-runner,主要是設定檔
sudo docker stop gitlab-runner;sudo docker rm gitlab-runner;
docker run -d --name gitlab-runner --restart always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v $DOCKER_BASE/gitlab-runner/config:/etc/gitlab-runner \
gitlab/gitlab-runner:latest
設定Gitlab CI
確認gitlab的Bridge IP位置, 不是Virtual Box給定的
docker inspect gitlab|grep 'IPAddress'
註冊
docker exec -it gitlab-runner gitlab-runner register
移除已經exited docker
sudo docker rm $(sudo docker ps -q -f status=exited)
建立共用的runner
- 切換Root
- 不要勾選docker 讓大家勾選的專案被衝突