# === Stage 1: Build the Play application ===
FROM sbtscala/scala-sbt:eclipse-temurin-alpine-22_36_1.10.3_3.5.1 AS builder

WORKDIR /app

# Install Node.js and Less CSS preprocessor
USER root
RUN apk add --no-cache nodejs npm && \
    npm install -g less

# Cache dependencies first
COPY project ./project
COPY build.sbt ./
RUN sbt -Dscoverage.skip=true update

# Copy the rest of the code
COPY . .

# Build the app and stage it
RUN sbt -Dscoverage.skip=true clean stage

# === Stage 2: Runtime image ===
FROM eclipse-temurin:21-jre-alpine

# Install Argon2 CLI and libraries
RUN apk add --no-cache bash argon2 argon2-libs

WORKDIR /opt/playapp

# Copy staged Play build
COPY --from=builder /app/knockoutwhistweb/target/universal/stage /opt/playapp

# Expose the default Play port
EXPOSE 9000

# Set environment variables
ENV PLAY_HTTP_PORT=9000

# Run the Play app
ENTRYPOINT ["./bin/knockoutwhistweb"]
CMD ["-Dplay.server.pidfile.path=/dev/null"]