A decentralized event management and credentialing system built on atproto.
1# syntax=docker/dockerfile:1.4
2FROM rust:1.89-slim AS builder
3
4RUN apt-get update && apt-get install -y \
5 pkg-config \
6 libssl-dev \
7 && rm -rf /var/lib/apt/lists/*
8
9WORKDIR /app
10COPY Cargo.toml build.rs ./
11
12ARG FEATURES=embed
13ARG TEMPLATES=./templates
14ARG STATIC=./static
15ARG GIT_HASH=0
16ENV GIT_HASH=$GIT_HASH
17
18COPY src ./src
19COPY migrations ./migrations
20COPY static ./static
21COPY ${TEMPLATES} ./templates
22COPY ${STATIC} ./static
23
24RUN cargo build --release --bin acudo --no-default-features --features ${FEATURES}
25
26FROM gcr.io/distroless/cc-debian12
27
28LABEL org.opencontainers.image.title="Acudo"
29LABEL org.opencontainers.image.description="A ticket platform for Lexicon Community events and RSVPs."
30LABEL org.opencontainers.image.licenses="MIT"
31LABEL org.opencontainers.image.authors="Nick Gerakines <nick.gerakines@gmail.com>"
32LABEL org.opencontainers.image.source="https://tangled.sh/@smokesignal.events/acudo"
33LABEL org.opencontainers.image.version="1.0.0"
34
35WORKDIR /app
36COPY --from=builder /app/target/release/acudo /app/acudo
37COPY --from=builder /app/static ./static
38
39ENV HTTP_STATIC_PATH=/app/static
40ENV HTTP_PORT=8080
41ENV RUST_LOG=info
42ENV RUST_BACKTRACE=full
43
44ENTRYPOINT ["/app/acudo"]