Size: a a a

2020 May 20

AE

Alexandr Emelyanov in pro.jvm
Alexey Genus
Ну вот по идее этого должно хватать?
Вообще, можно вручную. Скопировать все джарки библиотек, классы и ресурсы, а дальше по-старинке:
java -cp.... MyApp
Так, я пожалуй сначала покурю завтра за компом уже)

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

М

Михаил in pro.jvm
Alexandr Emelyanov
А есть статейки как по слоям разложить с зависимостями?
источник

AE

Alexandr Emelyanov in pro.jvm
Хм, посмотрю
источник

AG

Alexey Genus in pro.jvm
Alexandr Emelyanov
Так, я пожалуй сначала покурю завтра за компом уже)

Ну по идее да, скопировать зависимости и отдельным слоем приложение без перепаковки. Но может там из коробки что хитрее есть, что бы при изменении зависимостей весь слой не лопатить
Так это же сам докер решает с его кешами. Если мы делаем COPY одного и того же, то этот слой просто возьмётся из кеша. Главное в правильном порядке
FROM <java>
COPY либы
COPY классы и ресурсы
CMD ["java", "-cp","...", "MyApp"]

Так как либы меняются редко, они будут закешированы, и менятся будут только два последних слоя
источник

М

Михаил in pro.jvm
Alexey Genus
Так это же сам докер решает с его кешами. Если мы делаем COPY одного и того же, то этот слой просто возьмётся из кеша. Главное в правильном порядке
FROM <java>
COPY либы
COPY классы и ресурсы
CMD ["java", "-cp","...", "MyApp"]

Так как либы меняются редко, они будут закешированы, и менятся будут только два последних слоя
не-не-не, ни каких "COPY либы"!
источник

AG

Alexey Genus in pro.jvm
Почему?
источник

AE

Alexandr Emelyanov in pro.jvm
Alexey Genus
Так это же сам докер решает с его кешами. Если мы делаем COPY одного и того же, то этот слой просто возьмётся из кеша. Главное в правильном порядке
FROM <java>
COPY либы
COPY классы и ресурсы
CMD ["java", "-cp","...", "MyApp"]

Так как либы меняются редко, они будут закешированы, и менятся будут только два последних слоя
Так если одна либа меняется, то все слои сверху уже не валидны)
источник

AG

Alexey Genus in pro.jvm
Ну это да. Но мы же редко меняем либы, так что ничего страшного, я думаю.
источник

AG

Alexey Genus in pro.jvm
99% людей всё равно делают COPY app.jar, т.е. заведомо проигрывают) Я в том числе)
источник

М

Михаил in pro.jvm
Alexey Genus
Почему?
а как эту штуку в каком-нибудь github actions собирать? Сборка должна быть независима от хоста. Поэтому зависимости нужно тянуть в одном из верхних слоев. Но лучше вам ту статейку про на хабре посмотреть.
источник

VP

Vladimir Petrakovich in pro.jvm
Alexey Genus
99% людей всё равно делают COPY app.jar, т.е. заведомо проигрывают) Я в том числе)
То чувство, когда проигрываешь месяцами 😞
источник

AG

Alexey Genus in pro.jvm
Да я сам годами проигрываю. Всё мечтаю сделать эту штуку, чтобы вообще быстро собиралось, но всё лень. Вот перейду на 2.3.0, буду через второй метод собирать, наверное.
источник

VP

Vladimir Petrakovich in pro.jvm
Михаил
а как эту штуку в каком-нибудь github actions собирать? Сборка должна быть независима от хоста. Поэтому зависимости нужно тянуть в одном из верхних слоев. Но лучше вам ту статейку про на хабре посмотреть.
В докере запустить gradle и собрать без каких-либо проблем
источник

AG

Alexey Genus in pro.jvm
Михаил
а как эту штуку в каком-нибудь github actions собирать? Сборка должна быть независима от хоста. Поэтому зависимости нужно тянуть в одном из верхних слоев. Но лучше вам ту статейку про на хабре посмотреть.
Не понял, причём тут github actions?
источник

VP

Vladimir Petrakovich in pro.jvm
Зависимость от докер демона при сборке - вот это точно лишнее
источник

М

Михаил in pro.jvm
Идея такова. у нас есть чисты сервер. на него ставим докер и гит. выполняем гит клон и потом можем собирать образ из докерфайла.
источник

D

Dima in pro.jvm
Михаил
Идея такова. у нас есть чисты сервер. на него ставим докер и гит. выполняем гит клон и потом можем собирать образ из докерфайла.
зачем?
источник

М

Михаил in pro.jvm
Alexey Genus
Не понял, причём тут github actions?
Алексей, посмотрите статью на хабре, там очень хорошо это все объясняется. Я так точно не смогу.
источник

М

Михаил in pro.jvm
Dima
зачем?
А докер вам зачем?
источник

D

Dima in pro.jvm
Михаил
А докер вам зачем?
я к тому, что вы пытаетесь CI-сервер навелосипедить?
источник