-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDockerfile
More file actions
40 lines (27 loc) · 1.19 KB
/
Dockerfile
File metadata and controls
40 lines (27 loc) · 1.19 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# Etapa de build: Usar uma imagem com o JDK para compilar o projeto
FROM eclipse-temurin:17-jdk AS builder
# Definir o diretório de trabalho
WORKDIR /app
# Copiar apenas os arquivos do projeto que são necessários para o build
# Inclui o pom.xml e os arquivos de código fonte
COPY src/back /app
# Copiar o arquivo mvnw (Maven Wrapper) e garantir permissão de execução
COPY mvnw /app
COPY .mvn /app/.mvn
RUN chmod +x mvnw
# Construir o projeto usando Maven, sem rodar os testes
RUN ./mvnw clean package -DskipTests
# Etapa final: Usar uma imagem com o JRE para rodar a aplicação
FROM eclipse-temurin:17-jre
# Definir o diretório de trabalho para a aplicação
WORKDIR /app
# Copiar o JAR gerado na etapa de build para o diretório final
COPY --from=builder /app/target/*.jar app.jar
# Copiar os arquivos estáticos (imagens) para o diretório correto dentro do container
COPY src/back/src/main/resources/static/image /app/src/main/resources/static/image
# Garantir que as imagens tenham permissões adequadas
RUN chmod -R 755 /app/src/main/resources/static/image
# Expor a porta padrão do Spring Boot (8080)
EXPOSE 8080
# Comando para rodar a aplicação
ENTRYPOINT ["java", "-jar", "app.jar"]