Como criar uma imagem Docker para Spring Boot
FROM openjdk:25 AS builder
WORKDIR /app
COPY . /app
RUN microdnf install findutils
RUN ./gradlew build --no-daemon
FROM openjdk:25
WORKDIR /app
COPY --from=builder /app/build/libs/*.jar app.jar
EXPOSE 8080
ENTRYPOINT [ "java", "-jar", "app.jar" ]
WORKDIR: Estamos criando uma pasta no container e usando ela como base (equivalente ao mkdir app e cd app)
RUN: A imagem que eu estou utilizando não aceita parâmetros e precisamos dele para o gradle, portanto instalei o findutils com o microdnf.
Com as etapas acima temos o build da nossa aplicação (um .jar). Agora vamos copiar o build gerado para o container que vai executá-la. Aqui poderíamos usar o jre ao invés do jdk, porém não encontrei a versão 25 jre.
Basta criar outro diretório, copiar o arquivo jar gerado. O parâmetro --from=builder significa que estamos pegando o arquivo do estágio anterior e não do diretório da nossa máquina. O /app/build/libs/ é o caminho padrão que o build é salvo e estamos copiando ele para o /app com o nome app.jar.
Depois expomos a porta 8080 e definimos o ENTRYPOINT que é o comando que será executado quando nosso container iniciar.
Comentários
Postar um comentário