Mindflux: Sicherheit, Datenintegrität und Navigation härten
This commit is contained in:
+19
-2
@@ -3,17 +3,34 @@ FROM maven:3.9-eclipse-temurin-21 AS build
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
COPY . .
|
||||
# Dependency-Layer cachen: erst pom.xml auflösen, dann erst den Quellcode kopieren.
|
||||
COPY pom.xml .
|
||||
RUN mvn -q dependency:go-offline
|
||||
|
||||
RUN mvn clean package -DskipTests
|
||||
COPY src ./src
|
||||
|
||||
# Tests laufen im Build mit – ein roter Test stoppt das Image (CI-Teststufe inklusive).
|
||||
RUN mvn -q package
|
||||
|
||||
# ---- Runtime Stage ----
|
||||
FROM eclipse-temurin:21-jre
|
||||
|
||||
# curl für den Container-Healthcheck (siehe docker-compose.yml)
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y --no-install-recommends curl \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
# Nicht als root laufen; Upload-Verzeichnis für den App-User beschreibbar machen.
|
||||
RUN useradd --system --home /app --shell /usr/sbin/nologin mindflux \
|
||||
&& mkdir -p /app/uploads \
|
||||
&& chown -R mindflux:mindflux /app
|
||||
|
||||
COPY --from=build /app/target/*.jar app.jar
|
||||
|
||||
USER mindflux
|
||||
|
||||
EXPOSE 8080
|
||||
|
||||
ENTRYPOINT ["java","-jar","app.jar"]
|
||||
|
||||
Reference in New Issue
Block a user