今天的時間光是在設定本地版本的gitlab就差不多用光了,但gitlab看起來可以跑,可是感覺起來怪怪的。而最重要的runner,確是連到了也不能用。底下先從一開始裝gitlab談起。
一想到要裝gitlab,當然是先找到官方的安裝文件,再配合幾篇文章
看到這幾篇文章會認為裝gitlab不應該是什麼果難的事,但結果確是出奇的困難,而且我個人相信這一切的困難都是來自要在Windows WSL2上進行脫離不了係。
version: "3.7"
services:
gitlab:
container_name: gitlab
image: 'gitlab/gitlab-ce:latest'
restart: always
hostname: 'localhost'
environment:
GITLAB_OMNIBUS_CONFIG: |
# external_url 'http://localhost'
# Add any other gitlab.rb configuration here, each on its own line
ports:
- '80:80'
- '443:443'
- '22:22'
volumes:
- '${PWD}/${GITLAB_HOME}/config:/etc/gitlab'
- '${PWD}/${GITLAB_HOME}/logs:/var/log/gitlab'
- '${PWD}/${GITLAB_HOME}/data:/var/opt/gitlab'
networks:
- backend-dev
這是為了要跑起gitlab而寫下的compose檔,也就是官方的文件差不多全數進來,但在volumes那首先碰到問題。目錄結構如下
一開始時就是用**./gitlab/config:/etc/gitlab**,但不知道為什麼,就是有問題,只好改成了**${PWD}**在linux環境下拿取到這一層的路徑,照理說寫法上沒有錯,不過確會在某些情況下被判定成空字串。且因為權限的問題,在用docker-compose時如果不加上sudo,就會被卡住,無法進行下去。光是這裡設定就很奇怪,但不知道為什麼還是可以跑起來。每次都要用sudo去啓動真的很怪異,但能跑起來到也還好。
接下來就到了gitlab runner安裝的部份,參考官方文件後寫下的設定
gitlab-runner-js:
image: gitlab/gitlab-runner:latest
container_name: 'gitlab-runner-js'
restart: always
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- '${PWD}/${GITLAB_RUNNER_HOME_JS}/config:/etc/gitlab-runner'
depends_on:
- gitlab
links:
- gitlab
networks:
- backend-dev
雖然用了volume,但執行時就是不會產生config.toml出來。但一樣奇特的是似乎可以被連到。
然而,稍後用了一個從此篇文章裡放罝的專案做runner測試,都會出現問題,而這個問題是連不到
Running with gitlab-runner 13.4.1 (e95f89a0)
on local-gitlab-runner-go eDSyM6gT
Preparing the "docker" executor
Using Docker executor with image golang:1.14 ...
Pulling docker image golang:1.14 ...
Using docker image sha256:d6747a138341da1c909882b46336e64284d30eaec2e23bf60501c200d2c4bdb2 for golang:1.14 with digest golang@sha256:2586a80bea5329c08ef5e4e48a120f1fe947c4f928f51f189dbdb3fe8b40c9d2 ...
Preparing environment
Running on runner-edsym6gt-project-3-concurrent-0 via ee0a6ae2b8b2...
Getting source from Git repository
Fetching changes with git depth set to 50...
Reinitialized existing Git repository in /builds/wander-around-io/game-backend/.git/
fatal: unable to access 'http://gitlab/wander-around-io/game-backend.git/': Could not resolve host: gitlab
Cleaning up file based variables
ERROR: Job failed: exit code 1
不論是http://localhost或是用docker裡的http://gitlab都無法連,明知道是設定檔的連線出了問題,但怎樣都找不到問題的所在。Gitlab真的是不好安裝。說真的若只是要裝建置用的工具,DroneCI可能都是是更好的選擇。但會執意安裝gitlab主要是看到了remote的專案一樣是用gitlab.com做code存放,若是要用CI,也是由gitlab裡直接處理掉比較方便。弄一套ci的流程,本地和remote都一樣,比較方便。就是持著這樣的想法才一心一意地想把gitlab弄好。
整個流程還沒有完全串好,一直被卡住有些難進行下去。