FROM --platform=$BUILDPLATFORM docker.io/library/debian:trixie-slim AS builder

ARG FMD_SERVER_VERSION

RUN apt update && \
    apt install --no-install-recommends -y ca-certificates curl unzip && \
    rm -rf /var/lib/apt/lists/*

WORKDIR /tmp/fmd

RUN curl -o server.zip "https://packages.fmd-foss.org/server/fmd-server-v${FMD_SERVER_VERSION}.zip" && \
    unzip server.zip


FROM docker.io/library/alpine:3

ARG TARGETARCH

RUN apk add ca-certificates

# Create user
RUN addgroup -S -g 1000 fmd-server && adduser -S -u 1000 -D fmd-server

ARG BIN_FILE=/opt/fmd-server
ARG CTL_FILE=/opt/fmd-server-ctl
ARG DB_DIR=/var/lib/fmd-server/db

COPY --from=builder \
    --chown=root:root \
    --chmod=755 \
    "/tmp/fmd/fmd-server-${TARGETARCH}" "$BIN_FILE"

COPY --from=builder \
    --chown=root:root \
    --chmod=755 \
    "/tmp/fmd/fmd-server-ctl-${TARGETARCH}" "$CTL_FILE"

RUN mkdir -p "$DB_DIR" && \
    chown -R fmd-server:fmd-server "$DB_DIR" && \
    chmod -R 0660 "$DB_DIR" && \
    chmod 0770 "$DB_DIR"

# Change to user
USER fmd-server

EXPOSE 8080/tcp
EXPOSE 8443/tcp
EXPOSE 9100/tcp

# XXX: Using $BIN_FILE doesn't work
ENTRYPOINT ["/opt/fmd-server", "serve", "--db-dir", "/var/lib/fmd-server/db"]
