12

次のパイプラインを構成すると:

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

イメージをビルドして Docker レジストリーにプッシュした後、イメージをフェッチします。これには時間がかかる可能性があり、最終的にはビルドに何も追加されません。無効にする方法はありますか?

4

1 に答える 1

15

Everyは、作成されたバージョンをput意味します。getこれにはいくつかの理由があります。

これの主な理由は、新しく作成されたリソースをビルド計画の後のステップで使用できるようにするためです。がなければ、getビルドの実行中に「新しい」リソースを導入する方法はありません。ビルドの開始時に取得する特定のバージョンにすべて解決されるためです。

これを行うことには、いくつかの副次的な利点もあります。1 つは、1 つのワーカーのキャッシュをすぐにウォームアップすることです。したがって、少なくとも完全に無価値というわけではありません。後のジョブはそれを取得する必要はありません。putまた、実際に目的の効果があったことの検証としても機能します。

この特定のケースでは、ビルド プランの最後のステップであるため、主な理由は実際には当てはまりません。しかし、ほとんどの場合、副次的な利点により、二次的な質問が発生しないようにする価値があるため、わざわざ最適化することはしませんでした (「一部putのステップだけが a を意味するのはなぜgetですか?」)。

また、非常に多くのノブを追加することに抵抗があるため、無効にすることもできません.

ドキュメント: https://concourse-ci.org/put-step.html

于 2016-08-15T23:05:46.560 に答える