3

我有一个带有任务的 Concourse 管道,它使用存储在我们本地 Artifactory 服务器中的 Docker 映像。每次我启动管道时,大约需要 5 分钟才能最终运行任务。日志如下所示:

在此处输入图像描述

我假设 Concourse 以某种方式检查更新版本的 Docker 映像。不幸的是,我没有机会调试,因为 Concourse worker VM 上的所有日志文件都没有提供可用信息。

我的问题:

  1. 当 Concourse 说“正在准备构建”并且状态为“待定”时,我怎么可能调试正在发生的事情。

  2. 是否有机会避免 Concourse 检查更新版本的 Docker 映像?我用版本标记了 Docker 映像latest——这可能是个问题吗?

  3. 还有什么想法可以加快速度吗?

这是我的管道和任务的详细配置:

管道.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:
      # ...

任务.yml:

---
platform: linux

inputs:
- name: git
- name: concourse

outputs:
  - name: deployment-manifest

run:
  path: concourse/tasks/create-and-upload-cloud-config/task.sh
4

1 回答 1

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

所以基本上它是将端口明确添加repositoryinsecure_registries.

于 2017-03-22T13:06:30.893 回答