Comments 6
Чем eclipse-temurin лучше, чем, например, bellsoft/liberica-jdk-alpine-musl? Последний видимо будет ещё меньше в размере.
Вариант с копированием такого банального инструмента, как мавен, имхо, следовало бы дожать до сборки своего тулинг-образа, или хотя бы поиска подходящего в интернете.
Заголовок про Dockerfile, статья только про Spring. С тем же успехом могли назвать статью "Как программировать на Java". Не надо так делать.
Я тоже усмехнулся, мол, автор нашёл пример "попроще", чтобы знакомиться с докером. Но ничего, дожал до конца, показал нюансы с jdk и jre. Можно ведь и в другую крайность податься:
Берете ваш статически-линкованный бинарь (откуда он взялся, оставим за скобками).
FROM scratch COPY ./app /app ENTRYPOINT ["/app"]
docker build, docker run
???
PROFIT!!1
А есть какой-нибудь образ для сборки меньше чем
maven 3.6.0-jdk-11-slim c7428be691f8 3 years ago 489MB
А то как-то 500 мегов, да еще и все библиотеки тянет.
При сборке приложения посредством docker'а автор использовал хитрый трюк с вызовом "./mvn dependecy:go-offline" до копирования директории src. Человеку, не знакомому с деталями устройства контейнеров и привыкшему собирать локально, сложно понять зачем вообще нужен этот вызов, если потом все равно запускается "./mvnw clean install". А ведь без этого трюка сборка в контейнере будет очень медленной и поэтому, на мой взгляд, нужно было детально разобрать этот момент.
Простой пример написания Dockerfile. Использование многоэтапной сборки