скаффолд не может найти изображение, которое только что построил - PullRequest
0 голосов
/ 16 июня 2020

У меня есть следующие скаффолдинги

build:
  tagPolicy:
    sha256: {}
  artifacts:
    - image : sdk
      context: docker
      docker:
        dockerfile: Dockerfile.sdk
        buildArgs:
          CONFIGURATION: Debug
    - image : app
      context: docker
      docker:
        dockerfile: Dockerfile.app
        buildArgs:
          CONFIGURATION: Debug
    - image: azu
      context: rt/azu/src
      docker:
        dockerfile: Dockerfile.worker
        buildArgs:
          VERSION : Debug

Первые два изображения собраны отлично. А третий не работает. Вторая сборка зависит от первой, а третья зависит от второй. Однако третий не работает с "MANIFEST_UNKNOWN: manifest unknown", потому что он пытается получить его из docker хаба. Если я изменю контекст третьей сборки на docker (что приведет к сбою сборки образа), skaffold найдет локальный образ. Что я могу сделать, чтобы сохранить правильный контекст и сообщить скаффолду, что он не должен извлекать из концентратора docker, а использовать образ локальной сборки?

1 Ответ

0 голосов
/ 09 июля 2020

(Кроме того: трудно помочь, если вы не включите свои полные skaffold.yaml и Dockerfile s. Просто отредактируйте частные части.)

Skaffold " просто «оркестрирует сборки и не влияет на то, как базовые построители разрешают изображения. Но Skaffold действительно дает указание базовым строителям, как помечать полученное изображение. Skaffold предоставляет набор политик тегов .

Так что похоже, что ваш rt/azu/src/Dockerfile.worker имеет FROM, который не ссылается на ваше изображение app - возможно изображение помечено иначе, чем то, на которое вы ссылаетесь. Теггер Skaffold по умолчанию использует фиксацию git, что приводит к ссылкам на изображения, например, app:v1.12.0-37-g6af3198f3-dirty.

. Если мои подозрения верны, вы захотите использовать теггер envTemplate, чтобы ваши созданные изображения использовали более контролируемый и предсказуемый тег изображения, который вы можете встроить в свой Dockerfile s.

...