在运行任务

时间:2017-03-17 13:51:13

标签: docker artifactory concourse

我有一个Concourse Pipeline,其中有一个使用Docker镜像的Task,它存储在我们的本地Artifactory服务器中。每次启动Pipeline时,大约需要5分钟才能完成任务。日志看起来像这样:

enter image description here

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

我的问题:

  1. 当Concourse说"准备构建"时,我怎么可能调试正在进行的事情?状态为"待定"。

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

  3. 如何进一步了解如何加快速度?

  4. 以下是我的管道和任务的详细配置:

    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
    

1 个答案:

答案 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

所以基本上明确地将端口添加到repositoryinsecure_registries