Что-То совсем старнное... Как описано в "Взаимодействие между образами" Передаю BUILDER_IMAGE_NAME

в качестве аргумента в целевой образ:

---
image: nginx
context: .
dockerfile: .werf/nginx/nginx.Dockerfile
final: true
args:
APP_NGINX_IMAGE_TAG: {{ $app_nginx_image_tag }}
dependencies:
- image: builder
imports:
- type: ImageName
targetBuildArg: BUILDER_IMAGE_NAME


И он точно передайтся - вывел все переменные окружения в лог:
8.921673702s 8.897469077s │ │ │ nginx/dockerfile Step 6/17 : RUN env
9.022755353s 8.979686438s │ │ │ nginx/dockerfile ---> Running in 51c9a088a401
9.224573013s 9.189327987s │ │ │ nginx/dockerfile HOSTNAME=51c9a088a401
9.224583249s 9.189333538s │ │ │ nginx/dockerfile HOME=/root
9.224693788s 9.189337449s │ │ │ nginx/dockerfile TERM=xterm-256color
9.224705327s 9.189341648s │ │ │ nginx/dockerfile PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
9.2248138s 9.189574476s │ │ │ nginx/dockerfile DEBIAN_FRONTEND=noninteractive
9.224826049s 9.189601073s │ │ │ nginx/dockerfile BUILDER_IMAGE_NAME=cr.example.com/my-app:8f4b5bfa8925bc00e1ecdc9882f3883963e8d88e8900136a9c56a6aa-1725360012873
9.22486342s 9.189614646s │ │ │ nginx/dockerfile PWD=/


Далее пытаюсь сокпировать фартефакты хоть куда-то:
COPY --from=${BUILDER_IMAGE_NAME} /build /tmp/


И получаю:
Error: phase build on image nginx stage dockerfile handler failed: failed to build image for stage dockerfile with digest 38e7e6890d02e6e5da9cd3a888c0275247124271eb85b88274d0d1e8: error building dockerfile with docker-server-backend: Status: invalid from flag value ${BUILDER_IMAGE_NAME}: invalid reference format: repository name (library/${BUILDER_IMAGE_NAME}) must be lowercase, Code:


Если я руками впишу имя промежуточного образа, то всё соберётся корретно и файлы действительно скопируются:
COPY --from=cr.example.com/my-app:8f4b5bfa8925bc00e1ecdc9882f3883963e8d88e8900136a9c56a6aa-1725360012873 /build /tmp/


Что я делаю не так? 🧐

3 ответов

4 просмотра

Дублирую ответ тут. Приветствую! И ещё раз спасибо за обратную связь и предоставленное окружение с проблемой. Что касается использования ARG в COPY --from=${ARG}, то это ограничение docker, а не werf (moby/moby#34482). Что касается проблемы с конфликтом между args и dependencies, то тут уже всё связано с особенностями Dockerfile: ARG, которые используются во FROM, должны быть объявлены в самом начале перед всеми FROM. В любом случае спасибо за внимание и отношение к вопросу. И сорян, что так долго с ответом, дальше должно побыстрее с этим быть.

Aleksandr-Karabanov Автор вопроса
Aleksei Igrychev
Дублирую ответ тут. Приветствую! И ещё раз спаси...

А есть информация на счёт логов которых не видно если в качестве сборщика выбрать buildkit? Docker что-то намерен делать в этом направлении?

Похожие вопросы

Обсуждают сегодня

Всем привет. Понимаю, что, наверное, сто раз поднимали эту тему, но по ключевым словам не смог найти. Как передать в values.yaml зависимого хелм-чарта теги образов, собираемых...
Vitalik Petrov
4
@aigrychev, @ilya_lesikov добрый день! а поддерживает ли werf helm xxxx или werf bundle xxxx работу с сабчартами через http-прокси? (сработает ли использование HTTP_PROXY/HTTP...
Сергей Голод
4
Добрый день! Удалил все файлы с переменными из проекта, получил Error: release deploy: process resources: error validating adoptable resources: adoption validation failed: re...
Evgheni Mad
2
Всем привет. Werf v2.10.5 При удалении релиза вместе с неймспейсом (werf dismiss --namespace namespace_name) Сыпятся ошибки ┌ Waiting for resources elimination: namespaces/rel...
Vitalik Petrov
1
Привет! Вопрос про werf helm Приложение деплоится через werf helm upgrade --atomic Иногда(все условия для воспроизведения до конца непонятны, но есть версия, что это происходи...
𝓐𝓵͢͢͢𝓮𝔁 C
2
Всем привет. Сегодня добавили в приложение дополнительный образ nginx, в который докидывается системная статика прям в образ. При деплое бандлами деплоилось 200+ джоб(клиентов...
Владимир Муковоз
6
Добрый день, после перехода с версии 1.2 на 2.10 werf cleanup начал удалять использующиеся теги, и до и после обновления использовались дефолтные политики keepPolicies Подскаж...
Дмитрий
29
Друзья, добрый день. Прошу подсказать с базовым вопросом по использованию CI переменных gitlab в werf.yaml. Хочу в beforeInstall использовать env переменную с токеном. Мне нуж...
Anton Zol
10
Блин а мне как поумнеть ?
Toxin
191
Вопросик не совсем werf. Но вдруг мы подскажите воркэраунд или ещё что-нибудь. Могу ли я как-нибудь в моменте деплоя внутри heml рендера получить хэшсумму файла шаблона (./tem...
Alex Подрябинкин
11
Карта сайта