Something went wrong. Try again.
Our Personal Data Server from scratch!
Something went wrong. Try again.
tranquil-pds Dockerfile
2.4 kB · 56 lines
Dockerfile
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657FROM node:24-alpine AS frontendRUN corepack enable && corepack prepare pnpm@latest --activateWORKDIR /appCOPY frontend/package.json frontend/pnpm-lock.yaml frontend/pnpm-workspace.yaml ./RUN pnpm install --frozen-lockfileCOPY frontend/ ./RUN pnpm build
FROM rust:1.92-alpine AS builderRUN apk add --no-cache ca-certificates musl-dev pkgconfig openssl-dev openssl-libs-static mold clang protocENV RUSTFLAGS="-C linker=clang -C link-arg=-fuse-ld=mold"WORKDIR /appARG SLIM="false"COPY Cargo.toml Cargo.lock ./COPY .sqlx ./.sqlxCOPY crates/tranquil-types ./crates/tranquil-typesCOPY crates/tranquil-crypto ./crates/tranquil-cryptoCOPY crates/tranquil-scopes ./crates/tranquil-scopesCOPY crates/tranquil-config ./crates/tranquil-configCOPY crates/tranquil-repo ./crates/tranquil-repoCOPY crates/tranquil-lexicon ./crates/tranquil-lexiconCOPY crates/tranquil-oauth ./crates/tranquil-oauthCOPY crates/tranquil-db-traits ./crates/tranquil-db-traitsCOPY crates/tranquil-infra ./crates/tranquil-infraCOPY crates/tranquil-auth ./crates/tranquil-authCOPY crates/tranquil-comms ./crates/tranquil-commsCOPY crates/tranquil-db ./crates/tranquil-dbCOPY crates/tranquil-ripple ./crates/tranquil-rippleCOPY crates/tranquil-storage ./crates/tranquil-storageCOPY crates/tranquil-cache ./crates/tranquil-cacheCOPY crates/tranquil-pds ./crates/tranquil-pdsCOPY crates/tranquil-sync ./crates/tranquil-syncCOPY crates/tranquil-api ./crates/tranquil-apiCOPY crates/tranquil-oauth-server ./crates/tranquil-oauth-serverCOPY crates/tranquil-store ./crates/tranquil-storeCOPY crates/tranquil-signal ./crates/tranquil-signalCOPY crates/tranquil-server ./crates/tranquil-serverCOPY migrations ./migrationsRUN --mount=type=cache,target=/usr/local/cargo/registry \ --mount=type=cache,target=/app/target \ if [ "$SLIM" = "true" ]; then \ SQLX_OFFLINE=true cargo build --release -p tranquil-server --no-default-features; \ else \ SQLX_OFFLINE=true cargo build --release -p tranquil-server; \ fi && \ cp target/release/tranquil-server /tmp/tranquil-pds
FROM alpine:3.23RUN apk add --no-cache ca-certificatesCOPY --from=builder /tmp/tranquil-pds /usr/local/bin/tranquil-pdsCOPY --from=frontend /app/dist /var/lib/tranquil-pds/frontendWORKDIR /appENV SERVER_HOST=0.0.0.0ENV SERVER_PORT=3000EXPOSE 3000CMD ["tranquil-pds"]