我设置了一个 Windows GitLab 运行程序,它应该从我们的容器注册表下载 Docker 映像,然后在管道中运行构建脚本。不幸的是,由于以下错误,Docker 容器从未启动:
Running with gitlab-runner 15.1.0 (76984217)
on WindowsDockerRunner wZMWQZYi
Resolving secrets
Preparing the "docker-windows" executor
Using Docker executor with image mcr.microsoft.com/windows/servercore:ltsc2019 ...
Pulling docker image mcr.microsoft.com/windows/servercore:ltsc2019 ...
Using docker image sha256:e6b07227af5ca9303c2112b574f6f27f38135bbf9df29d829142410221967401 for mcr.microsoft.com/windows/servercore:ltsc2019 with digest mcr.microsoft.com/windows/servercore@sha256:26c6c296a4737ba478fe3c3e531b098f89b5562c40b416ba6fb8177ac462d1af ...
Preparing environment
Running on RUNNER-WZMWQZYI via
runner2...
ERROR: Job failed (system failure): prepare environment: Error response from daemon: invalid condition: "not-running". Check https://docs.gitlab.com/runner/shells/index.html#shell-profile-loading for more information
Run Code Online (Sandbox Code Playgroud)
错误消息没有明确说明问题的原因是什么,并且它引用的文档没有提及任何有关“条件”的内容。根据指向 shell 配置文件的链接,我怀疑它可能与正在运行的 shell 有关,但是当我在本地运行 Docker 容器时,它可以正常启动到 PowerShell。
有谁知道如何解决这个问题?
有没有办法允许通过AWS中的VPC访问AWS S3存储桶中的对象而无需身份验证?我不想为此使用 AWS IAM 角色或用户。我不想禁用除 VPC 之外的所有对象的访问,因为对象应该通过 AWS 外部的 AWS IAM 角色进行访问。
目的:为在私有节点上的 AWS EKS Kubernetes 集群内运行的 GitLab Runner 提供 AWS S3 存储桶访问权限。
注意:公共访问已被阻止并将继续被阻止。所有对象都是私有的并且将保持私有。
amazon-s3 amazon-web-services amazon-vpc gitlab-ci-runner amazon-eks
我正在建立一个gitlab-ci进程,但我无法理解如何管理我的秘密......
所以我已经成功启动了一个gitlab/gitlab-runner作为docker容器,并从gitlab/dind注册了一个docker runner.
我想在这种情况下构建的东西只是从Dockerfile构建一个docker镜像,填充缓存以供其他ci集成测试版本使用.这通过推送到我的私人码头注册表.在这种情况下,我的.gitlab-ci.yml定义只是:
build_image:
script:
- docker build -t ensime/ensime-atom-ci .
- docker tag ensime/ensime-atom-ci docker.woodenstake.se/ensime/ensime-atom-ci
- docker push docker.woodenstake.se/ensime/ensime-atom-ci
Run Code Online (Sandbox Code Playgroud)
看起来很简单,但当然我没有信誉,所以它失败了:
我只是来自无人机,我为此生成了一个.sec文件.
但在这里我应该登录,对吗?所以我在这里读到了
问题是因为我在dockerized gitlab/gitlab-runner图像中运行gitlab-runner,那里似乎甚至没有docker cli?
viktor@i7:/var/lib$ sudo docker exec -it gitlab-runner docker login
exec: "docker": executable file not found in $PATH
Run Code Online (Sandbox Code Playgroud)
任何提示高度赞赏!
更新澄清:
所以gitlab-ci构建日志的尾部是:
012ca7ed9b62: Retrying in 1 seconds
173cd98367a6: Retrying in 1 seconds
92b0661193a5: Retrying in 1 seconds
c12ecfd4861d: Waiting
5f70bf18a086: Retrying in 5 seconds
no basic auth credentials
ERROR: Build failed: exit code 1
Run Code Online (Sandbox Code Playgroud)
主机以root身份登录到注册表.试图从docker容器登录我甚至没有docker …
是否有可能在gitlab-ci.yml中有两个阶段,一个用docker runner运行但另一个用shell运行?
想象一下,我想在docker容器中运行测试,但我想在容器中本地运行shell部署阶段.
我是image: ruby:2.3.1从gitlab CI使用的.需要部署以下包.
此外,如何确保每个构建gitlab不应该重新下载这些包(我的意思是重新使用它)
我正在尝试在gitlab的新安装上注册一个gitlab运行器(基于Centos7的omnibus rpm),但注册失败如下:
[root@ec2-x.y.z.w ~]#
[root@ec2-x.y.z.w ~]# sudo gitlab-ci-multi-runner register
Running in system-mode.
Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/):
http://ec2-x-y-z-w.compute-1.amazonaws.com/
Please enter the gitlab-ci token for this runner:
38BUk9-kgZkmmPHz-hsb
Please enter the gitlab-ci description for this runner:
[ec2-x-y-z-w.compute-1.amazonaws.com]: dcos runner 1
Please enter the gitlab-ci tags for this runner (comma separated):
dcos
Whether to run untagged builds [true/false]:
[false]:
ERROR: Registering runner... failed runner=38BUk9-k status=404 Not Found
PANIC: Failed to register this runner. Perhaps you are having network problems …Run Code Online (Sandbox Code Playgroud) 我们在同一阶段有4个可以同时运行的部署作业.来自Gitlab文档:
阶段元素的排序定义了作业执行的顺序:
同一阶段的工作是并行运行的.
下一阶段的作业在上一阶段的作业成功完成后运行.
但是,会发生的情况是,一次只运行一个作业,而其他作业仍在等待处理.是否有其他事情我需要做才能让它并行执行.我正在使用一个带有在Ubuntu 16.04实例上托管的shell执行器的运行器.
我们已经使用Gitlab CI已有几个月了,在过去的1周中,我们一直在使用VPS上安装的特定运行器。当前,我们使用“ shell”作为执行程序。
今天,我们的管道突然停顿了下来,当我们查看服务器的可用RAM时,仅供参考,996 MB中只有48MB,我们正在使用CentOS 6。
我们一直在努力寻找答案,但目前我们陷入困境,并想知道:
- 是什么原因导致管道卡死?
- 是因为可用内存少吗?
- 我们应该使用其他执行器,也许是SSH甚至是docker?
- 解决此类问题的最佳实践是什么?
我们将不胜感激任何帮助或指示。
将gitlab-runner设置为具有executor的Docker容器后docker,我无法运行任何构建。显示的日志如下所示:
Running with gitlab-runner 11.4.2 (cf91d5e1)
on <hostname> 9f1c1a0d
Using Docker executor with image docker:stable-git ...
Starting service docker:stable-dind ...
Pulling docker image docker:stable-dind ...
Using docker image sha256:acfec978837639b4230111b35a775a67ccbc2b08b442c1ae2cca4e95c3e6d08a for docker:stable-dind ...
Waiting for services to be up and running...
Pulling docker image docker:stable-git ...
Using docker image sha256:a8a2d0da40bc37344c35ab723d4081a5ef6122d466bf0a0409f742ffc09c43b9 for docker:stable-git ...
Running on runner-9f1c1a0d-project-1-concurrent-0 via a7b6a57c58f8...
Fetching changes...
HEAD is now at 5430a3d <Commit message>
Checking out 5430a3d8 as master...
Skipping Git submodules setup
$ …Run Code Online (Sandbox Code Playgroud) 我有一个驻留在Gitlab中的Gradle Java 11项目。我想介绍gitlab-ci.yml一下强制Gitlab构建项目并在每次向远程分支推送时运行测试。
看起来像什么?
我很确定已经提出了类似的问题,但是找不到,因此,感谢您的帮助。
gitlab-ci-runner ×10
gitlab ×6
gitlab-ci ×6
docker ×2
amazon-eks ×1
amazon-s3 ×1
amazon-vpc ×1
bower ×1
gradle ×1
gruntjs ×1
java ×1