From 3f9dec91b7bb92462ba6ee5ab356c158c9a1b22d Mon Sep 17 00:00:00 2001 From: rhita-rh Date: Mon, 17 Nov 2025 22:54:58 +0100 Subject: [PATCH] dockerfile --- .devcontainer/Dockerfile | 11 ----------- docker-compose.yml | 2 +- dockerfile | 36 ++++++++++++++++++++++++++++++++++++ 3 files changed, 37 insertions(+), 12 deletions(-) delete mode 100644 .devcontainer/Dockerfile create mode 100644 dockerfile diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile deleted file mode 100644 index f8102bca6..000000000 --- a/.devcontainer/Dockerfile +++ /dev/null @@ -1,11 +0,0 @@ -# Not actually used by the devcontainer, but it is used by gitpod -ARG VARIANT=17-bullseye -FROM mcr.microsoft.com/vscode/devcontainers/java:0-${VARIANT} -ARG NODE_VERSION="none" -RUN if [ "${NODE_VERSION}" != "none" ]; then su vscode -c "umask 0002 && . /usr/local/share/nvm/nvm.sh && nvm install ${NODE_VERSION} 2>&1"; fi -ARG USER=vscode -VOLUME /home/$USER/.m2 -VOLUME /home/$USER/.gradle -ARG JAVA_VERSION=17.0.7-ms -RUN sudo mkdir /home/$USER/.m2 /home/$USER/.gradle && sudo chown $USER:$USER /home/$USER/.m2 /home/$USER/.gradle -RUN bash -lc '. /usr/local/sdkman/bin/sdkman-init.sh && sdk install java $JAVA_VERSION && sdk use java $JAVA_VERSION' \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index 9a3cbedab..e4dcfebb2 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,6 +1,6 @@ services: app: - image: lilitaa/pet-clinic + image: lilitaa/my-java-app ports: - "8080:8080" environment: diff --git a/dockerfile b/dockerfile new file mode 100644 index 000000000..1d51491d9 --- /dev/null +++ b/dockerfile @@ -0,0 +1,36 @@ +# ------------------------- +# Stage 1: Build +# ------------------------- +FROM maven:3.9-eclipse-temurin-17 AS build + +WORKDIR /app + +# Copy Maven configuration and wrapper first (cache dependencies) +COPY pom.xml . +COPY mvnw . +COPY .mvn .mvn + +# Download dependencies (cached if pom.xml doesn't change) +RUN mvn dependency:go-offline -B || true + +# Copy source code +COPY src ./src + +# Optional: fix formatting +RUN mvn spring-javaformat:apply -B || true + +# Build the project (skip tests) +RUN mvn clean package -DskipTests -B + +# ------------------------- +# Stage 2: Runtime +# ------------------------- +FROM eclipse-temurin:17 + +WORKDIR /app + +# Copy the built JAR from the build stage +COPY --from=build /app/target/*.jar app.jar + +# Run the application +CMD ["java", "-jar", "app.jar"]