在运行任务之前长时间待机
我有一个使用存储在我们的本地Artifactory服务器的Docker镜像的任务Concourse Pipeline。 每次启动pipe道时,大约需要5分钟,直到任务最终运行。 日志看起来像这样:
我假设Concourse以某种方式检查更新版本的Docker镜像。 不幸的是我没有机会debugging,因为Concourse worker VM上的所有日志文件都没有提供可用的信息。
我的问题:
-
当Concourse说“准备build造”,状态是“挂起”时,我怎么可能debugging正在发生的事情。
-
是否有机会避免Concourse检查Docker镜像的更新版本? 我用
latest
版本标记了Docker镜像 – 这可能是一个问题吗? -
还有什么想法,我可以加快速度?
以下是我的pipe道和任务的详细configuration:
pipeline.yml:
--- resources: - name: concourse-image type: docker-image source: repository: OUR_DOMAIN/subpath/concourse username: ... password: ... insecure_registries: - OUR_DOMAIN # ... jobs: - name: deploy public: true plan: - get: concourse-image - task: create-manifest image: concourse-image file: concourse/tasks/create-manifest/task.yml params: # ...
task.yml:
--- platform: linux inputs: - name: git - name: concourse outputs: - name: deployment-manifest run: path: concourse/tasks/create-and-upload-cloud-config/task.sh
造成这个问题的原因是我们从仅在HTTP上运行的内部Dockerregistry中提取了Docker镜像。 Concourse试图使用HTTPS来拉取图像,并花了大约5分钟,直到Concourse切换到HTTP(这是工人的tcpdump
向我们展示的)。
将资源configuration更改为以下configuration解决了问题:
resources: - name: concourse-image type: docker-image source: repository: OUR_SERVER:80/subpath/concourse username: docker-readonly password: docker-readonly insecure_registries: - OUR_SERVER:80
所以基本上是将端口显式添加到repository
和insecure_registries
。