FROM rust:1-bookworm AS build

WORKDIR /src
COPY Cargo.toml Cargo.lock ./
COPY src ./src

RUN cargo build --release --bin shuttle-gateway --bin stl

FROM debian:bookworm-slim

RUN apt-get update \
    && apt-get install -y --no-install-recommends ca-certificates \
    && rm -rf /var/lib/apt/lists/* \
    && groupadd --system shuttle-gateway \
    && useradd --system \
      --gid shuttle-gateway \
      --home-dir /var/lib/shuttle-gateway \
      --shell /usr/sbin/nologin \
      shuttle-gateway \
    && install -d -m 0755 /etc/shuttle-gateway \
    && install -d -m 0750 -o shuttle-gateway -g shuttle-gateway /var/lib/shuttle-gateway

COPY --from=build /src/target/release/shuttle-gateway /usr/local/bin/shuttle-gateway
COPY --from=build /src/target/release/stl /usr/local/bin/stl
COPY packaging/oci/projects.toml.example /etc/shuttle-gateway/projects.toml
COPY packaging/oci/shuttle-gateway.env.example /etc/shuttle-gateway/shuttle-gateway.env.example

USER shuttle-gateway:shuttle-gateway
WORKDIR /var/lib/shuttle-gateway
VOLUME ["/etc/shuttle-gateway", "/var/lib/shuttle-gateway"]
EXPOSE 8787 8788

ENTRYPOINT ["/usr/local/bin/shuttle-gateway"]
CMD ["serve", "--config", "/etc/shuttle-gateway/projects.toml", "--stl", "/usr/local/bin/stl", "--timeout", "10"]
