Удаленка для jenkins+selenide+selenoid+allure+docker спецов на 2-3 часа в день. 100% remote! Присоединиться к проекту

Как не выкачивать каждый раз maven зависимости при поднятии нового docker контейнера

docker
Теги: #<Tag:0x00007fedbbf96838>

(Fuji F) #1

Есть ли способ использовать уже скачанные зависимости, а не выкачивать всё заново при поднятии контейнера. Через volume не выходит.


(Dmitriy Zverev) #2

Так, может быть, сделать контейнер с установкой зависимостей при его сборке.


(Sergey Pirogov) #3

Устанавливать при билде имиджа


(Pavel Ponomaryov) #4

Через volume не выходит.

Покажите, как вы это делаете


(Fuji F) #5

так
docker run --rm -v ‘/usr/share/maven-repo/’:’/usr/share/maven-repo/’ -w … maven:3.2-jdk-7 mvn $command

/usr/share/maven-repo - путь где на моей виртуалке лежат мавен зависимости


(Pavel Ponomaryov) #6

А мавен точно ожидает увидеть там зависимости? Ещё может попробовать флаг -o для оффлайн режима?


(Fuji F) #7

я так понял всё равно в будущем без Dockerfile не обойтись, через него попробую в билде выкачивать зависимости, как посоветовали выше


(Fuji F) #8

Всё равно перекачивает заново зависимости
такой докер фаил

так запускаю

docker build --rm=false -t dscont .
docker run --rm -w ‘/usr/proj/’ dscont mvn test


(Fuji F) #9

в общем я решил так:

  • поднял один контейнер как со скаченными зависимостями и он висит как демон;
  • а в контейнер где будут бежать тесты запустил с опцией --volumes-from мавенконтейнер:rw
    возможно некоторые шаги лишние, но и так сойдет

(Roma Marinsky) #10

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

Пока активно изучаю докер, будет полезна любые готовые настройки и инструменты


(Fuji F) #11

Ну я поищу, давно не занимался им уже


(Sergey Pirogov) #12

закешируй папку ~/.m2 и все