# syntax=docker/dockerfile:1

FROM golang:1.25.1-alpine AS build
WORKDIR /src
COPY platform/go.mod ./
RUN go mod download
COPY platform/ ./
RUN CGO_ENABLED=0 GOOS=linux go build -trimpath -o /out/platform ./cmd/platform

FROM alpine:3.21
RUN addgroup -S platform && adduser -S platform -G platform
WORKDIR /app
COPY --from=build /out/platform /app/platform
RUN mkdir -p /data/platform && chown -R platform:platform /data/platform
USER platform
EXPOSE 8080
ENV PLATFORM_ADDR=:8080 \
    PLATFORM_STORAGE_BACKEND=file \
    PLATFORM_MYSQL_DSN="" \
    PLATFORM_DATA_DIR=/data/platform \
    PLATFORM_METADATA_PATH=/data/platform/metadata.json \
    PLATFORM_LOG_BODY_BACKEND=file \
    PLATFORM_LOG_DIR=/data/platform/logs
ENTRYPOINT ["/app/platform"]
