Docker
在 Docker 中連接 GitLab 和 Gitlab runner
如何將我的 GitLab 安裝與執行在單獨的 docker 容器中的執行器連接起來?
GitLab 工作正常,可通過http://docker.lcnet:8181訪問
我的第一個問題是,我在哪裡可以找到我的 Gitlab “CI” URL?還是只是我的正常網址?我必須包括港口嗎?
我正在使用這個文件: https ://docs.gitlab.com/ce/ci/docker/using_docker_images.html
這就是我得到的:
ubuntu@docker:~$ sudo docker exec -it gitlab-runner gitlab-runner register Running in system-mode. Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/): http://docker.lcnet:8181 Please enter the gitlab-ci token for this runner: <token from settings> Please enter the gitlab-ci description for this runner: [5bf3c5086904]: my-runner Please enter the gitlab-ci tags for this runner (comma separated): tag1 ERROR: Registering runner... failed runner=hm-eFuar status=couldn't execute POST against http://docker.lcnet:8181/ci/api/v1/runners/register.json: Post http://docker.lcnet:8181/ci/api/v1/runners/register.json: dial tcp: lookup vader.nts on 8.8.8.8:53: no such host PANIC: Failed to register this runner. Perhaps you are having network problems
我看到存在網路問題,但經過幾個小時的搜尋,我找不到解決這個問題的合適提示。我知道 docker 圖像可以通過 docker-names 相互通信,但是在任何地方都沒有提到如何設置它。
我嘗試輸入“gitlab-ce”(這是執行 gitlab 的 docker 容器的名稱),但它不起作用。
我必須創建一個 docker 網路嗎?
好的,在更深入地研究 docker 之後,我明白我必須使用“連結”將 runner-container 連結到 GitLab 容器。
這是上述文件中缺少的內容。雖然它說不建議在同一台機器上執行 Gitlab 和執行器(我猜這也可以解決問題),但在某些情況下需要它,所以很高興提到容器必須連結:
$ docker run -d -P --name gitlabce gitlab/gitlab-ce:latest $ docker run -d -P --name runner --link gitlabce:gitlabce gitlab/gitlab-runner:latest $ docker exec -it runner gitlab-runner register Running in system-mode. Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/): http://gitlabce Please enter the gitlab-ci token for this runner: (your token from gitlab->admin->runner) Please enter the gitlab-ci description for this runner: [a11fa3f389d9]: Please enter the gitlab-ci tags for this runner (comma separated): Registering runner... succeeded
我是 docker 新手,很抱歉這個瑣碎的問題,但也許它會對其他人有所幫助。
另一種方法是創建一個使用者定義的網路,因為如果我理解正確的話,容器可以在沒有連結的情況下相互通信。