ARG GLEAM_VERSION=v1.15.2
ARG ERLANG_VERSION=28.4.1

# builder stage ----------------------------------------------------------------
FROM ghcr.io/gleam-lang/gleam:${GLEAM_VERSION}-scratch as gleam
FROM docker.io/erlang:${ERLANG_VERSION}-alpine as builder

COPY --from=gleam /bin/gleam /bin/gleam

COPY ./shared /build/shared
COPY ./client /build/client
COPY ./server /build/server

WORKDIR /build/shared
RUN gleam deps download

WORKDIR /build/client
RUN gleam deps download

WORKDIR /build/server
RUN gleam deps download

WORKDIR /build/client
RUN gleam run -m lustre/dev build

WORKDIR /build/server
RUN gleam export erlang-shipment

# runtime stage ----------------------------------------------------------------
FROM docker.io/erlang:${ERLANG_VERSION}-alpine
COPY --from=builder /build/server/build/erlang-shipment /app

EXPOSE 8000
WORKDIR /app
ENTRYPOINT ["/app/entrypoint.sh"]
CMD ["run"]
