Gitlab CI - 无法注册跑步者

时间:2016-05-29 12:21:14

标签: continuous-integration gitlab gitlab-ci gitlab-ci-runner gitlab-8

我从源代码安装了我的gitlab安装,用letsencrypt保护它并在https://gitlab.mydomain.com下部署它。我可以访问该网站并创建存储库等,但我找不到注册gitlab ci runner的方法。

Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/ci):
https://gitlab.mydomain.com/ci
Please enter the gitlab-ci token for this runner:
xxxxxxxx-xxxxxxxx
Please enter the gitlab-ci description for this runner:
[server]: test
Please enter the gitlab-ci tags for this runner (comma separated):
test
ERROR: Registering runner... failed     runner=xxxxxxx 
status=couldn't execute POST against https://gitlab.mydomain.com/ci/api/v1/runners/register.json:
Post https://gitlab.mydomain.com/ci/api/v1/runners/register.json: 
read tcp [ipv6address]:33518->[ipv6address]:443: read: connection reset by peer
PANIC: Failed to register this runner. Perhaps you are having network problems

我的gitlab系统工作正常,我真的没有解释为什么会有connection reset by peer。当我尝试直接从错误消息中卷曲地址时,它会返回正确的响应。

curl -v https://gitlab.mydomain.com/ci/api/v1/runners/register.json
*   Trying ipv6address...
* Connected to gitlab.mydomain.com (ipv6address) port 443 (#0)
* found 174 certificates in /etc/ssl/certs/ca-certificates.crt
* found 700 certificates in /etc/ssl/certs
* ALPN, offering h2
* ALPN, offering http/1.1
* SSL connection using TLS1.2 / ECDHE_RSA_AES_256_GCM_SHA384
*        server certificate verification OK
*        server certificate status verification SKIPPED
*        common name: mydomain.com (matched)
*        server certificate expiration date OK
*        server certificate activation date OK
*        certificate public key: RSA
*        certificate version: #3
*        subject: CN=mydomain.com
*        start date: Wed, 18 May 2016 14:35:00 GMT
*        expire date: Tue, 16 Aug 2016 14:35:00 GMT
*            issuer: C=US,O=Let's Encrypt,CN=Let's Encrypt Authority X3
*        compression: NULL
* ALPN, server did not agree to a protocol
> GET /ci/api/v1/runners/register.json HTTP/1.1
> Host: gitlab.mydomain.com
> User-Agent: curl/7.47.0
> Accept: */*
> 
< HTTP/1.1 405 Method Not Allowed
< Server: nginx
< Date: Sun, 29 May 2016 09:14:09 GMT
< Content-Type: application/json
< Content-Length: 2
< Connection: keep-alive
< Allow: OPTIONS, POST
< Cache-Control: no-cache
< Status: 405 Method Not Allowed

5 个答案:

答案 0 :(得分:0)

将gitlab更新为8.8.3gitlab-multi-ci-runner到最新版本后,问题就消失了。

我也从头开始创建gitlab nginx配置文件。

最后,我无法确定哪个更改可以解决问题。

答案 1 :(得分:0)

到目前为止,我遇到了很多错误,问题从错误404,403开始,并且结尾有问题请求。

对我来说,问题似乎是incompatibility between GitLab and ci-runner

解决方案,同样在帖子问题上,是安装旧版ci-runner:

sudo apt install gitlab-ci-multi-runner=1.11.1

答案 2 :(得分:0)

我已经通过安装public async Task<bool> TryPlayElseStop(int reciterId, int chapterId) { this.chapterId = chapterId; var file = await RecitationUtils.TryGetAudioFile(reciterId, chapterId); if (file != null) { Play(file); // there should be an exception thrown here return true; } else { Utils.Toast("Download the file first in the Recitation menu"); Stop(); return false; } } private void Play(Tuple<MyFile, RealmRecitationFile> file) { if (mediaPlayer == null) InitMediaPlayer(); ResetCallbacks(); mediaPlayer.SetSource(file.Item1); FileCurrentlyPlaying = file.Item2; AppUtils.UpdateListeningHistory(chapterId); UiClients.ForEach(x => x.OnSurahPlayed(chapterId)); void InitMediaPlayer() { mediaPlayer = new MyMediaPlayer {IsLoopingEnabled = false}; // the app continues even though I'm explicitly // throwing this exception for debugging purposes throw new NullReferenceException(); playerTimer = new MyTimer(1_000); // the actual exception occurs inside this constructor playerTimer.Start(); UiClients.ForEach(x => x.OnPlayerInitialized()); } // ... } 解决了这个问题。

答案 3 :(得分:0)

如果运行程序和gitlab在同一主机上运行,​​则可以通过输入第一个问题,而不是在文档中给出什么,来解决此问题:

http://gitlab:port

其中 gitlab 是容器名称,端口是容器的左侧端口号。如果您使用的是gitlab内部ssl证书,请指定https而不是http。当我得到它时,这总是可以解决这个问题。

答案 4 :(得分:0)

对于那些使用 docker 的人:

问题是关于 docker 网络。

如果你尝试

  "$docker container inspect $id"

您将看到 gitlab 容器的 IP 地址。

在第一个问题中指向该 IP 地址即可正常工作。