# Stage 1: Build
FROM maven:3.9-eclipse-temurin-25-alpine AS builder
WORKDIR /app
# Copy POM first (allows for cached dependency layer)
COPY pom.xml .
RUN mvn dependency:resolve -B

COPY src ./src
# Updated with both properties to avoid the warning
RUN mvn package -DskipTests -Dquarkus.package.jar.type=uber-jar -Dquarkus.package.jar.enabled=true

# Stage 2: Runtime (DEBIAN-based for OpenCV native libs)
FROM eclipse-temurin:25-jre
WORKDIR /app

# Install dependencies + wget for health checks
RUN apt-get update && \
    apt-get install -y --no-install-recommends \
        libstdc++6 \
        libgomp1 \
        wget \
    && rm -rf /var/lib/apt/lists/*


# Create user (Debian syntax)
RUN groupadd -r quarkus && useradd -r -g quarkus quarkus
# Create user with explicit UID 1000 (Debian syntax)
RUN groupadd -r -g 1000 quarkus && useradd -r -u 1000 -g quarkus quarkus
# Create the data directory and set ownership BEFORE switching user
RUN mkdir -p /mnt/okcomputer/output && \
    chown -R quarkus:quarkus /mnt/okcomputer/output

# Copy the built jar with correct pattern
COPY --from=builder --chown=quarkus:quarkus /app/target/auctiora-*.jar app.jar

USER quarkus
EXPOSE 8081

ENTRYPOINT ["java", \
    "-Dio.netty.tryReflectionSetAccessible=true", \
    "--enable-native-access=ALL-UNNAMED", \
    "--add-opens", "java.base/java.nio=ALL-UNNAMED", \
    "-jar", "app.jar"]