Something went wrong. Try again.
A lexicon-driven AppView for ATProto.
Something went wrong. Try again.
happyview Dockerfile
1.0 kB · 40 lines
Dockerfile
1234567891011121314151617181920212223242526272829303132333435363738394041FROM node:22-alpine AS frontend
WORKDIR /app/webCOPY web/package.json web/package-lock.json ./RUN npm ciCOPY web/ .RUN npm run build
FROM rust:1.93-bookworm AS builder
WORKDIR /app
# Build dependencies first (cached until Cargo.toml/Cargo.lock change)COPY Cargo.toml Cargo.lock ./RUN mkdir -p src/bin && echo "fn main() {}" > src/main.rs && touch src/lib.rs && echo "fn main() {}" > src/bin/migrate_lua_sql.rsENV SQLX_OFFLINE=trueRUN cargo build --release && rm -rf src target/release/.fingerprint/happyview-*
# Build application codeCOPY src/ src/COPY migrations/ migrations/RUN cargo build --release
FROM debian:bookworm-slim
RUN apt-get update && apt-get install -y --no-install-recommends \ ca-certificates \ && rm -rf /var/lib/apt/lists/*
WORKDIR /app
COPY --from=builder /app/target/release/happyview /usr/local/bin/happyviewCOPY --from=builder /app/migrations /app/migrationsCOPY --from=frontend /app/web/out /srv/static
ENV STATIC_DIR=/srv/static
EXPOSE 3000
ENTRYPOINT ["happyview"]