quizterm/Dockerfile

32 lines
822 B
Text
Raw Permalink Normal View History

2025-11-02 08:58:21 +01:00
ARG GLEAM_VERSION=v1.12.0
# Build stage - compile the application
FROM ghcr.io/gleam-lang/gleam:${GLEAM_VERSION}-erlang-alpine AS builder
# Add project code
COPY ./priv /quizterm/priv
COPY ./src /quizterm/src
COPY ./gleam.toml /quizterm/
RUN cd /quizterm && gleam deps download
# Compile the server code
RUN cd /quizterm \
&& gleam export erlang-shipment
# Runtime stage - slim image with only what's needed to run
FROM ghcr.io/gleam-lang/gleam:${GLEAM_VERSION}-erlang-alpine
# Copy the compiled server code from the builder stage
COPY --from=builder /quizterm/build/erlang-shipment /app
# Set up the entrypoint
WORKDIR /app
RUN echo -e '#!/bin/sh\nexec ./entrypoint.sh "$@"' > ./start.sh \
&& chmod +x ./start.sh
# Expose the port the server will run on
EXPOSE 1234
# Run the server
CMD ["./start.sh", "run"]