# syntax=docker/dockerfile:1

FROM oven/bun:1 AS builder
WORKDIR /build

COPY package.json ./
RUN bun install

COPY tsconfig.json ./
COPY src/ ./src/
RUN bun build --compile --minify --sourcemap --bytecode \
    --target=bun-linux-x64 \
    ./src/main.ts \
    --outfile ./dist/functions-server

FROM debian:bookworm-slim

RUN apt-get update \
    && apt-get install -y --no-install-recommends curl podman \
    && rm -rf /var/lib/apt/lists/*

WORKDIR /app

COPY --from=builder /build/dist/functions-server ./functions-server

RUN mkdir -p /data
VOLUME ["/data"]

ENV ATOMFN_DATA_DIR=/data
EXPOSE 7000

HEALTHCHECK --interval=30s --timeout=5s --start-period=15s --retries=3 \
    CMD curl -sf http://localhost:${ATOMFN_PORT:-4922}/v1/health

CMD ["./functions-server"]
