Добрый день. Подскажите, а как правильно подкладывать в определенную стадию

кэш с предыдущих сборок? То бишь при сборе приложения образуются сборочные файлы, их можно сохранить и подложить в следующую сборку, после которой будут уже новые итд.
Вроде с помощью верф стадий можно сделать такое, но не могу допереть как

32 ответов

8 просмотров

я подобное просто в слои кеширую

? import: - image: здесь_название_образа_собранного_ранее add: ... to: ... before: ... либо каждый новый образ строить на основе предыдущего: fromImage: ...

Alexey-Erisov Автор вопроса
Сергей Голод
? import: - image: здесь_название_образа_собранног...

А, точно. Забыл, что можно сослаться на предыдущие образы.

Alexey-Erisov Автор вопроса
Сергей Голод
? import: - image: здесь_название_образа_собранног...

А не подскажите, как сослаться на сбилженный ранее образ? название образа: backend В каждой сборке название не меняется. Есть какие-то werf.values, которые позволяют сослаться на backend, но из предыдущей сборки?

Alexey-Erisov Автор вопроса
Alexey Erisov
А не подскажите, как сослаться на сбилженный ранее...

Я почитал, для этих целей есть build_dir. Но ее не реккомендуется использовать, вот и думаю это сделать на уровне артефактов

Alexey Erisov
А не подскажите, как сослаться на сбилженный ранее...

Протегиройте его используя short sha commit, а потом просто используйте env которая содержит это значение в следующей джобе. Я по умолчанию все образы тегирую %image%-{{ env "CI_COMMIT_SHORT_SHA" }}

Alexey-Erisov Автор вопроса

Не совсем понял. Нужно ведь не захардкоженное значение, а ровно предыдущий билд. То бишь мне надо в wer.yaml, как-то при каждой сборке получать ссылку на ровно предыдущую сборку.

Alexey Erisov
Не совсем понял. Нужно ведь не захардкоженное знач...

Ну возьмите переменную номер билда минусуйте единицу и вот вам предыдущий билд. У вас это в одном пайплайне? В разных джобах?

Alexey Erisov
Не совсем понял. Нужно ведь не захардкоженное знач...

И какая цель конечная? Выдрать данные из образа для следующей джобы? Тогда только mount

Alexey-Erisov Автор вопроса
Abix
И какая цель конечная? Выдрать данные из образа дл...

Да, сборочный кеш между сборками подкладывать к каждой сборке, и после нее обновлять. Да, build_dir прям в точности решает этот вопрос, но он же не реккомендуется докой, вот и думал, как-то артефактами сделать

Владимир Муковоз
в слое докера)))

Ага и разориться на хранении папки node_modules )) для каждой сборки, сам же недавно писал и говорил что много образ весит.

Alexey-Erisov Автор вопроса
Владимир Муковоз
в слое докера)))

werf с докером послойно не кеширует же. Да и не особо поможет это. Спрашивал уже как-то. Потому переписал на stapel. Но вопрос все равно остался, как правильно подложить кше сборок от предыдущих сборок, чтобы ускорить текущую. КРоме build_dir получается никак?

Abix
Ага и разориться на хранении папки node_modules ))...

и там нет нодемодулес, ну там где у меня образ много весит

Abix
Ага и разориться на хранении папки node_modules ))...

зато быть уверенным что твой кеш не создаёт нигде конфликтов

Alexey Erisov
werf с докером послойно не кеширует же. Да и не ос...

в моём случае отлично помогает, поясните как это не помогает вам, не понимаю

Abix
Ага и разориться на хранении папки node_modules ))...

ну и опять же, большое занятое место будет только в случае если у тебя одновременно много разных вариаций по модулям. В реале врядли такое где-то случается, чаще всего билд изменили и продолжительное время на нём живут, имея может ещё несколько тестовых вариантов которые обкатываются. А в таком случае проблем с местом не будет. И не будет проблем с конфликтами.

Alexey-Erisov Автор вопроса
Abix
Ну возьмите переменную номер билда минусуйте едини...

Это внутри werf.yaml. Мне же в stapel надо сослаться на образ, из которого делать импорт. Вот как в werf.yaml задать imageFrom: backend - 1 я не знаю )

Abix
screenshot

к чему это?

Alexey Erisov
А не подскажите, как сослаться на сбилженный ранее...

Я не совсем понимаю что значит сбилженный ранее. Если образа(его слоев), указанного в import нет в репе - то верф увидит отсутствие и запустит сборку образа указанного в import. И выстроит последовательность запуска чтобы в импорт подложить собранный образ

Alexey-Erisov Автор вопроса

я так понимаю в рамках стапеля?

Alexey-Erisov Автор вопроса
Владимир Муковоз
я так понимаю в рамках стапеля?

Ну сейчас на стапель перешел да, он более гибкий. Но и с докером проблема не особо решилась бы. Вариант, 1 либо использовать монтирование ( build_dir). Но его прям нереккомендует сама дока верфа, и я вот хз. 2 либо на уровень выше пытаться это решить - в gitlab-ci.yml. То бишь оперировать сборками самого гитлаба. Но нужно будет тогда как-то связывать прокидывать в джобах номера сборок. Вероятно, так можно решить, но усложняет слишком всё.

Alexey-Erisov Автор вопроса
Владимир Муковоз
почему с докером не решилась бы?

Так суть останется таже. Нам нужно сослаться на предыдущий билд. Со стапелем просто это внутри werf.yml всё, а с докером в dockerfile ушло бы, и я даже хз, как это бы решилось внутри dockerfile

посмотрите на мой скрин, я ни на что не ссылаюсь и при этом слой используется из кеша

Alexey-Erisov Автор вопроса
Владимир Муковоз
посмотрите на мой скрин, я ни на что не ссылаюсь и...

Вы не о том. Пакеты и у меня кешируеются. До этого докером, сейчас стапелем. Вообще не важно. Слой уже поменялся. Он будет пересобираться, в него внесли изменения. Вопрос в том, чтобы ПЕРЕД его пересборкой, подложить к нему результат от предыдущей его сборки, чтобы ускорить нынешнюю сборку

Alexey Erisov
Вы не о том. Пакеты и у меня кешируеются. До этого...

или я вас не понимаю или вы всё ещё не понимаете что такое слои в докере

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

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

pika.exceptions.ChannelClosedByBroker: (406, "PRECONDITION_FAILED - inequivalent arg 'x-message-ttl' for queue 'amo-crm.q' in vhost '/': received the value '60000' of type 'si...
Sergey
9
Всем привет 👋 может кто подсказать? Как мне добавить файлик без коммита в сборку stapel? С докерфайлом понятно Там allowContextAddFiles А как тоже самое сделать со stapel?
Sergeevich
5
Еще одну панику поймал: $ werf helm repo add --username gitlab --password ${CI_JOB_TOKEN} helm-werf ${HELM_REPO_V2_URL} "helm-werf" has been added to your repositories $wer...
citius
1
Всем доброго времени суток! Перестал запускаться сервер RabbitMQ, вижу по логам, что ругается на плагин, но по какой причине не могу понять. Можете помочь разобраться, куда ко...
Александр Семенов
2
Вот такая неприятность на stable и ea версиях: werf helm --namespace s4c upgrade --install --atomic --timeout 5m --set s4c.version=839185f3 --set s4c.deployEnv=staging -f d...
citius
6
Всем привет! Прохожу этот самоучитель. Дошел до # Настроим подключение к MinIO. mc alias set minio http://minio:9000 minioadmin minioadmin # Получим содержимое сохранённого...
Aleksandr
6
Доброго дня чат, можно ли использовать для werf build локально podman?
Andrey🏔
2
https://habr.com/ru/companies/domclick/articles/500978/ Добрый день, подскажите, пожалуйста, насколько хорошая практика сделать вот такую структуру эксчейнджей и очередей для...
Sergey
5
Блин а мне как поумнеть ?
Toxin
191
Всем привет! Подскажите, пожалуйста, почему не применяются настройки? Хочу задеплоить вот такой кластер в кубер. apiVersion: rabbitmq.com/v1beta1 kind: RabbitmqCluster metad...
Игорь Самарский
1
Карта сайта