我目前正在运行一个docker-compose堆栈,用于基本集成测试,包括量角器测试运行器,服务于网页的nodejs服务器和服务于java后端的wildfly服务器.
堆栈是从我的构建服务器(concourse ci)中的dind(docker in docker)容器中运行的.
但似乎容器在完成量角器测试时不会终止.
因此,由于wildfly和nodejs的容器仍在运行,因此构建任务永远不会完成......
如何在测试结束时使作曲成功或失败?
# Test runner
test-runner:
image: "${RUNNER_IMG}"
privileged: true
links:
- client
- server
volumes:
- /Users/me/frontend_test/client-devops:/protractor/project
- /dev/shm:/dev/shm
entrypoint:
- /entrypoint.sh
- --baseUrl=http://client:9000/dist/
- /protractor/conf-dev.js
- --suite=remember
# Client deployment
client:
image: "${CLIENT_IMG}"
links:
- server
# Server deployment
server:
image: "${SERVER_IMG}"
Run Code Online (Sandbox Code Playgroud) 我完全理解Concourse是无国籍的,但是有没有办法重新使用已经拉过的docker图像?在我的例子中,我构建了~10个具有相同基本图像的docker图像,但每次构建都被触发Concourse将基本图像拉10次.
是否可以使用标准docker资源将该图像拉一次并在以后重新使用它(至少在同一版本的范围内)?
是的,应该可以使用自定义图像并在sh脚本中编写它,但我不喜欢邀请自行车.
如果标准docker资源不允许,是否可以以某种方式扩展它以启用此类行为?
--cache-from 没有用,因为CI花费大部分时间来拉动图像,而不是构建新图层.
从文档中我不清楚是否有可能将一个作业的输出传递给另一个作业(不是从任务到任务,而是从一个工作到另一个工作).
我不知道从概念上讲我是做正确的事情,也许它应该在Concourse中以不同的方式建模,但我想要实现的是将Java项目的管道分成几个细粒度的工作,这些工作可以并行执行,如果我需要重新运行一些工作,并独立触发.
我怎么看管道:
mvn deploy)SNAPSHOTMaven项目子模块的版本output的task)jar来的output我无法将output作业1从作业2 传递到作业2.此外,我很好奇,如果我对原始git repo资源所引入的任何更改将出现在下一个作业中(从作业1到作业2).
所以问题是:
到目前为止我发现了什么:
outputs不是从一个工作岗位传递给工作的put到github repo)都会在下一个作业中获取,但工作副本中的更改不会最小的例子(如果注释行没有注释错误,则会失败:) missing inputs: gist-upd, gist-out:
---
resources:
- name: gist
type: git
source:
uri: "git@bitbucket.org:snippets/foo/bar.git"
branch: master
private_key: {{private_git_key}}
jobs:
- name: update
plan:
- get: gist
trigger: true
- task: update-gist
config:
platform: …Run Code Online (Sandbox Code Playgroud) 在控制台中执行e2e测试时,出现以下错误,好像chromedriver没有更新。在讨论有关chrome版本落后的类似问题时,在我看来,chrome稳定版本正在按预期方式下载(76.0.3809.100)。但是被量角器的webmanager驱动程序拉出的chromedriver版本停留在2.46中。
我尝试将chromedriver从2.46手动更新为76.0.3809.12,但在执行过程中仍回落至2.46。
#!/bin/bash
set -e -u -x
wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add -
sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list'
apt-get update && apt-get install -y google-chrome-stable
cd git-platformUI/ui
npm install
npm set progress=false && npm config set depth 0 && npm cache clean --force
$(npm bin)/ng e2e --configuration=$CONFIG
Run Code Online (Sandbox Code Playgroud)
[07:33:13] E /启动器-未创建会话:Chrome版本必须介于71和75之间(驱动程序信息:chromedriver = 2.46.628388(4a34a70827ac54148e092aafb70504c4ea7ae926),平台= Linux 4.15.0-36-通用x86_64)[07 :33:13] E / launcher-SessionNotCreatedError:未创建会话:Chrome版本必须介于71和75之间(驱动程序信息:chromedriver = 2.46.628388(4a34a70827ac54148e092aafb70504c4ea7ae926),platform = Linux 4.15.0-36-generic x86_64)在parseHttpResponse(/ tmp / build / 357f536d / git-platformUI / …
当我配置以下管道时:
resources:
- name: my-image-src
type: git
source:
uri: https://github.com/concourse/static-golang
- name: my-image
type: docker-image
source:
repository: concourse/static-golang
username: {{username}}
password: {{password}}
jobs:
- name: "my-job"
plan:
- get: my-image-src
- put: my-image
Run Code Online (Sandbox Code Playgroud)
构建并将图像推送到Docker注册表后,它随后会提取图像.这可能需要一些时间,最终并没有真正为构建添加任何内容.有没有办法禁用它?
我想在我的管道中构建一个docker镜像,然后在其中运行一个作业,而不是推动或拉动图像.
这可能吗?
我尝试设置一个支持尽可能多的语言/平台的大厅构建服务器(http://concourse-ci.org/).
我已经读过,从Windows Server 2016开始,可以将Windows作为容器.当concourse在其网站上写道支持多个平台(包括Windows)时,我想知道这是否意味着可以使用Windows容器?
如果无法运行Windows容器,我是否可以以某种方式使虚拟机而不是容器?
windows containers build-server windows-server-2016 concourse
我创建了一个存储库hub.docker.com,现在想要使用我的凭据将我的图像推送到Dockerhub.我想知道是否必须使用我的用户名和密码,或者我是否可以创建某种访问令牌来推送docker镜像.
我想要做的是使用docker-imageConcourse 的资源将图像推送到Dockerhub.因此,我必须配置如下凭据:
type: docker-image
source:
email: {{docker-hub-email}}
username: {{docker-hub-username}}
password: {{docker-hub-password}}
repository: {{docker-hub-image-dummy-resource}}
Run Code Online (Sandbox Code Playgroud)
我不想使用我的Dockerhub密码.
如何设置在 Concourse 中的工作完成或失败时发送的电子邮件?
我的目标是能够使用councourse构建管道构建,打包和测试使用maven构建的java项目.
这样的设置就绪,一切运行正常,但由于我们的连接的maven下载速度不佳,构建时间太长.
我的构建作业yml文件使用以下资源作为maven构建的基础:
# ...
image_resource:
type: docker-image
source:
repository: maven
tag: '3.3-jdk-8'
# ...
Run Code Online (Sandbox Code Playgroud)
我知道每个建筑物都有一块"空白石板",这是因为设计上有很多东西.
现在我的问题是:什么是缓存本地maven存储库的好方法(比如说,至少有一些基本内容,如Spring和它的依赖项)?
以下选项出现在我的脑海中:
据我所知,选项1)不会使构建的下载大小变小,因为大厅似乎没有缓存用作构建作业基础的docker镜像(或者我错在这里?)
在我继续之前,我想确保以下选项2)给我带来任何好处 - 使用concourse缓存docker图像作为资源吗?
我可能会错过一些东西,因为我对国会比较陌生.如果我强迫你在这里说明显而易见的话,请原谅我.:)
concourse ×10
docker ×3
angular ×1
angular-e2e ×1
build-server ×1
containers ×1
email ×1
protractor ×1
windows ×1