# syntax=docker/dockerfile:1.4 FROM rust:1.90-slim-bookworm AS builder RUN apt-get update && apt-get install -y \ pkg-config \ libssl-dev \ && rm -rf /var/lib/apt/lists/* WORKDIR /app COPY Cargo.toml build.rs ./ ARG FEATURES=embed,s3 ARG TEMPLATES=./templates ARG STATIC=./static ARG GIT_HASH=0 ENV GIT_HASH=$GIT_HASH COPY src ./src COPY migrations ./migrations COPY static ./static COPY i18n ./i18n COPY ${TEMPLATES} ./templates COPY ${STATIC} ./static RUN cargo build --release --bin smokesignal --no-default-features --features ${FEATURES} FROM gcr.io/distroless/cc-debian12 LABEL org.opencontainers.image.title="Smoke Signal" LABEL org.opencontainers.image.description="An event and RSVP management application." LABEL org.opencontainers.image.licenses="MIT" LABEL org.opencontainers.image.authors="Nick Gerakines " LABEL org.opencontainers.image.source="https://tangled.sh/@smokesignal.events/smokesignal" LABEL org.opencontainers.image.version="1.0.2" WORKDIR /app COPY --from=builder /app/target/release/smokesignal /app/smokesignal COPY --from=builder /app/static ./static ENV HTTP_STATIC_PATH=/app/static ENV HTTP_PORT=8080 ENV RUST_LOG=info ENV RUST_BACKTRACE=full ENTRYPOINT ["/app/smokesignal"]