我有一个Concourse Pipeline,其中有一个使用Docker镜像的Task,它存储在我们的本地Artifactory服务器中。每次启动Pipeline时,大约需要5分钟才能完成任务。日志看起来像这样:
我认为Concourse以某种方式检查Docker镜像的更新版本。不幸的是,我没有机会调试,因为Concourse worker VM上的所有日志文件都没有提供可用的信息。
我的问题:
当Concourse说"准备构建"时,我怎么可能调试正在进行的事情?状态为"待定"。
有没有机会避免Concourse检查更新版本的Docker镜像?我用版本latest
标记了Docker镜像 - 这可能是个问题吗?
如何进一步了解如何加快速度?
以下是我的管道和任务的详细配置:
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
答案 0 :(得分:3)
出现此问题的原因是我们从内部Docker注册表中删除了Docker镜像,该注册表仅在 HTTP 上运行。 Concourse尝试使用 HTTPS 来提取图像,大约需要5分钟,直到Concourse切换到HTTP(这是工作人员向我们展示的tcpdump
)。
将资源配置更改为以下配置解决了以下问题:
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
。