iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 28
0
自我挑戰組

用Unity製作連線遊戲系列 第 28

Local Build Setup

  • 分享至 

  • xImage
  •  

今天的時間光是在設定本地版本的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那首先碰到問題。目錄結構如下

  • project
    • gitlab
      • config
      • logs
      • data
    • docker-compose.yml

一開始時就是用**./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

然而,稍後用了一個從此篇文章裡放罝的專案做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弄好。

整個流程還沒有完全串好,一直被卡住有些難進行下去。


上一篇
Go Reload via Air
下一篇
Local Build Remote Source Control
系列文
用Unity製作連線遊戲30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言