Siema
Uczę się Dockera i patrzyłem po necie jak skoneteneryzować podstawową apkę Spring Boot
Widziałem dwa główne podejścia:
- Odpalenie builda Mavena
Np.:
FROM eclipse-temurin:17-jdk-focal
WORKDIR /app
COPY .mvn/ .mvn
COPY mvnw pom.xml ./
RUN ./mvnw dependency:go-offline
COPY src ./src
CMD ["./mvnw", "spring-boot:run"]
- Zbudowanie pliku JAR lokalnie i skopiowanie do obrazu
Np.:
FROM amazoncorretto:11-alpine-jdk
MAINTAINER baeldung.com
COPY target/docker-message-server-1.0.0.jar message-server-1.0.0.jar
ENTRYPOINT ["java","-jar","/message-server-1.0.0.jar"]
Którego powinno się używać?
A i jeszcze pytanie - czy to normalne że przy użyciu mvnw dependency:go-offline
w Dockerfile (podejście 1) najpierw instaluje to wszystko przy budowaniu obrazu, ale potem i tak pobiera jeszcze jakieś pojedyncze pomy i jary po odpaleniu kontenera?