Привет, может сможет кто то дать совет, есть maven проект

который собирается через werf из докерфайла на гитлабе, сборка через werf build --repo, и вот сама сборка в докерфайле через mvn clean package, и каждый раз при отработке пайплайна оно заново переустаналивливает все зависимости, есть ли варик как то закэшировать результат установки зависимостей и не повторять его из раза в раз?

8 ответов

15 просмотров

Переписать на стейджи?)

Ivan-Chaikin Автор вопроса
Gennady [sga] Shelapugin
Переписать на стейджи?)

я дико извиняюсь, но как ето граммотно сделать в рамках мавена? Бо сейчас оно на выходе дает jarник, и этот джарник уже копируется в финальный образ, надо разделить установку зависимостей и компиляцию?

Ivan Chaikin
я дико извиняюсь, но как ето граммотно сделать в р...

Можно использовать stapel для этих целей. (1) Переиспользовать кэш сборки x при последующих сборках, сбрасывать кэш раз в месяц: image: maven-build ... git: - add: / to: /app stageDependencies: setup: "**/*" shell: installCacheVersion: {{ div .Commit.Date.Unix (mul 60 60 24 30) }} install: cd /app && mvn -B -s settings.xml clean package -T 1C -DskipTests setup: cd /app && mvn -B -s settings.xml clean package -T 1C -DskipTests --- image: final ... import: - image: maven-build add: <path>/target/<jar-name>-*.jar to: /app/bin/<jar-name>.jar before: setup (2) или использовать монтирование. p.s. пока так, но уже скоро мы планируем реализовать распределённый кэш (хранится, версионируется подобно стадиям), который будет работать для пользователя подобно монтированию.

Ivan-Chaikin Автор вопроса

Второй способ рабочий, но не рекомендуемый и со своими очевидными недостатками. То, что в p.s., это уже третий способ, эффективный и правильный по всем признакам. А что надо учитывать для multi-stage?

n
Да, я хотел про третий способ поговорить

Насколько я помню, в верфи buildkit отключён, а без него в простом докере были ложные пересборки (играл роль порядок объявления стейджа)

n
Насколько я помню, в верфи buildkit отключён, а б...

Buildkit по умолчанию включён, но можно выключить. Известных проблем по этой теме не имеем.

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

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

Всем привет. Понимаю, что, наверное, сто раз поднимали эту тему, но по ключевым словам не смог найти. Как передать в values.yaml зависимого хелм-чарта теги образов, собираемых...
Vitalik Petrov
4
Всем привет. Werf v2.10.5 При удалении релиза вместе с неймспейсом (werf dismiss --namespace namespace_name) Сыпятся ошибки ┌ Waiting for resources elimination: namespaces/rel...
Vitalik Petrov
1
@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 helm Приложение деплоится через werf helm upgrade --atomic Иногда(все условия для воспроизведения до конца непонятны, но есть версия, что это происходи...
𝓐𝓵͢͢͢𝓮𝔁 C
2
Всем привет. Сегодня добавили в приложение дополнительный образ nginx, в который докидывается системная статика прям в образ. При деплое бандлами деплоилось 200+ джоб(клиентов...
Владимир Муковоз
6
Добрый день, после перехода с версии 1.2 на 2.10 werf cleanup начал удалять использующиеся теги, и до и после обновления использовались дефолтные политики keepPolicies Подскаж...
Дмитрий
29
Блин а мне как поумнеть ?
Toxin
191
Друзья, добрый день. Прошу подсказать с базовым вопросом по использованию CI переменных gitlab в werf.yaml. Хочу в beforeInstall использовать env переменную с токеном. Мне нуж...
Anton Zol
10
Вопросик не совсем werf. Но вдруг мы подскажите воркэраунд или ещё что-нибудь. Могу ли я как-нибудь в моменте деплоя внутри heml рендера получить хэшсумму файла шаблона (./tem...
Alex Подрябинкин
11
Карта сайта