Skip to content

Commit 1c7cd0e

Browse files
authored
Update Dockerfile
1 parent 1dbb445 commit 1c7cd0e

1 file changed

Lines changed: 29 additions & 9 deletions

File tree

Dockerfile

Lines changed: 29 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,35 @@
1-
# Stage 1: Build
2-
FROM maven:3.9-eclipse-temurin-17 AS build
1+
# Stage 1: Build (Optimizat pentru caching)
2+
FROM maven:3.9.6-eclipse-temurin-17-alpine AS build
33
WORKDIR /app
4-
COPY . .
5-
RUN mvn clean package -DskipTests
64

7-
# Stage 2: Runtime
5+
# Copiem doar pom.xml pentru a descărca dependențele (caching layer)
6+
COPY pom.xml .
7+
RUN mvn dependency:go-offline -B
8+
9+
# Copiem sursele și compilăm
10+
COPY src ./src
11+
RUN mvn clean package -DskipTests -B
12+
13+
# Stage 2: Runtime (Security-Hardened)
814
FROM eclipse-temurin:17-jre-alpine
915
WORKDIR /app
16+
17+
# Parametri de optimizare JVM pentru containere
18+
ENV JAVA_OPTS="-XX:+UseParallelGC -XX:MaxRAMPercentage=75.0 -Djava.security.egd=file:/dev/./urandom"
19+
20+
# Securitate: Creăm un user de sistem pentru a evita rularea ca root
21+
RUN addgroup -S btp-group && adduser -S btp-user -G btp-group
22+
23+
# Copiem doar artefactul necesar
1024
COPY --from=build /app/target/*.jar adapter.jar
11-
# Securitate: Rulăm ca utilizator non-root
12-
RUN addgroup -S spring && adduser -S spring -G spring
13-
USER spring:spring
25+
26+
# Setăm permisiunile corecte
27+
RUN chown btp-user:btp-group adapter.jar
28+
29+
# Switch la user non-root
30+
USER btp-user
31+
1432
EXPOSE 8080
15-
ENTRYPOINT ["java", "-jar", "adapter.jar"]
33+
34+
# ENTRYPOINT configurat să accepte parametri externi (pentru Kyma/K8s)
35+
ENTRYPOINT ["sh", "-c", "java $JAVA_OPTS -jar adapter.jar"]

0 commit comments

Comments
 (0)