О дистрибуции образов
Дистрибуция собираемых 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"