-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDockerfile
More file actions
31 lines (23 loc) · 880 Bytes
/
Copy pathDockerfile
File metadata and controls
31 lines (23 loc) · 880 Bytes
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
# Use a imagem oficial do OpenJDK 11 como base
FROM openjdk:11-jdk-slim
# Define o diretório de trabalho dentro do container
WORKDIR /app
# Copia o arquivo pom.xml primeiro (para aproveitar o cache do Docker)
COPY pom.xml .
# Instala o Maven
RUN apt-get update && \
apt-get install -y maven && \
rm -rf /var/lib/apt/lists/*
# Baixa as dependências do Maven (isso será cacheado se o pom.xml não mudar)
RUN mvn dependency:go-offline -B
# Copia o código fonte
COPY src ./src
# Compila o projeto
RUN mvn clean compile
# Cria um usuário não-root para segurança
RUN groupadd -r appuser && useradd -r -g appuser appuser
RUN chown -R appuser:appuser /app
RUN mkdir -p /home/appuser/.m2/repository && chown -R appuser:appuser /home/appuser/.m2
USER appuser
# Define o comando padrão para executar a aplicação
CMD ["mvn", "exec:java", "-Dexec.mainClass=app.App"]