Something went wrong. Try again.
Something went wrong. Try again.
tranquil-pds Dockerfile
2.7 kB · 61 lines
Dockerfile
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162FROM node:24-trixie-slim 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.96-slim-trixie AS builderRUN apt-get update && apt-get install -y --no-install-recommends \ ca-certificates pkg-config libssl-dev mold clang protobuf-compiler \ && rm -rf /var/lib/apt/lists/*ENV 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,id=cargo-registry,target=/usr/local/cargo/registry \ --mount=type=cache,id=cargo-git,target=/usr/local/cargo/git \ --mount=type=cache,id=tranquil-target,target=/app/target,sharing=locked \ 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 debian:trixie-slimRUN apt-get update && apt-get install -y --no-install-recommends \ ca-certificates libssl3 \ && rm -rf /var/lib/apt/lists/*COPY --from=builder /tmp/tranquil-pds /usr/local/bin/tranquil-pdsCOPY --from=frontend /app/dist /var/lib/tranquil-pds/frontendWORKDIR /appENV SERVER_HOST=[::]ENV SERVER_PORT=3000EXPOSE 3000CMD ["tranquil-pds"]