О дистрибуции образов
Дистрибуция собираемых werf образов для использования сторонними пользователями и/или ПО осуществляется командой werf export. Эта команда соберёт и опубликует образы в container registry, при этом убрав все ненужные для стороннего ПО метаданные, чем полностью выведет образы из-под контроля werf, позволив организовать их дальнейший жизненный цикл сторонними средствами.
Опубликованные командой
werf exportобразы никогда не будут удаляться командойwerf cleanup, в отличие от образов, опубликованных обычным способом. Очистка экспортированных образов должна быть реализована сторонними средствами.
Дистрибуция образа
werf export \
--repo example.org/myproject \
--tag other.example.org/myproject/myapp:latest
Результат: образ собран и сначала опубликован с content-based тегом в container registry example.org/myproject, а затем опубликован в другой container registry other.example.org/myproject как целевой экспортированный образ other.example.org/myproject/myapp:latest.
В параметре --tag можно указать тот же репозиторий, что и в --repo, таким образом используя один и тот же container registry и для сборки, и для экспортированного образа.
Дистрибуция нескольких образов
В параметре --tag можно использовать шаблоны %image%, %image_slug% и %image_safe_slug% для подставления имени образа из werf.yaml, основанном на его содержимом, например:
werf export \
--repo example.org/mycompany/myproject \
--tag example.org/mycompany/myproject/%image%:latest
Дистрибуция произвольных образов
Используя позиционные аргументы и имена образов из werf.yaml можно выбрать произвольные образы, например:
werf export backend frontend \
--repo example.org/mycompany/myproject \
--tag example.org/mycompany/myproject/%image%:latest
Использование content-based-тега при формировании тега
В параметре --tag можно использовать шаблон %image_content_based_tag% для использования тега образа, основанном на его содержимом, например:
werf export \
--repo example.org/mycompany/myproject \
--tag example.org/mycompany/myproject/myapp:%image_content_based_tag%
Добавление произвольных лейблов
Используя параметр --add-label можно добавить произвольное количество дополнительных лейблов к экспортируемому образу(ам), например:
werf export \
--repo example.org/mycompany/myproject \
--tag registry.werf.io/werf/werf:latest \
--add-label io.artifacthub.package.readme-url=https://raw.githubusercontent.com/werf/werf/main/README.md \
--add-label org.opencontainers.image.created=2023-03-13T11:55:24Z \
--add-label org.opencontainers.image.description="Official image to run werf in containers"