mirror of
https://tangled.org/tranquil.farm/tranquil-pds
synced 2026-05-26 01:40:19 +00:00
- pnpm doesn't implicitly ignore post-install scripts anymore which means trying to build the docker image now fails. i've explicitly allowed them but idk could also ignore them maybe not sure what they actually do lol
- added `confirmModulesPurge: false` but not sure what it actually does as it's not documented? but either way it's also required for the `pnpm build` step to succeed non-interactively it seems idk weird stuff
- removed msmtp/sendmail while i was at it just like f176f55862
57 lines
2.3 KiB
Docker
57 lines
2.3 KiB
Docker
FROM node:24-alpine AS frontend
|
|
RUN corepack enable && corepack prepare pnpm@latest --activate
|
|
WORKDIR /app
|
|
COPY frontend/package.json frontend/pnpm-lock.yaml frontend/pnpm-workspace.yaml ./
|
|
RUN pnpm install --frozen-lockfile
|
|
COPY frontend/ ./
|
|
RUN pnpm build
|
|
|
|
FROM rust:1.92-alpine AS builder
|
|
RUN apk add --no-cache ca-certificates musl-dev pkgconfig openssl-dev openssl-libs-static mold clang protoc
|
|
ENV RUSTFLAGS="-C linker=clang -C link-arg=-fuse-ld=mold"
|
|
WORKDIR /app
|
|
ARG SLIM="false"
|
|
COPY Cargo.toml Cargo.lock ./
|
|
COPY .sqlx ./.sqlx
|
|
COPY crates/tranquil-types ./crates/tranquil-types
|
|
COPY crates/tranquil-crypto ./crates/tranquil-crypto
|
|
COPY crates/tranquil-scopes ./crates/tranquil-scopes
|
|
COPY crates/tranquil-config ./crates/tranquil-config
|
|
COPY crates/tranquil-repo ./crates/tranquil-repo
|
|
COPY crates/tranquil-lexicon ./crates/tranquil-lexicon
|
|
COPY crates/tranquil-oauth ./crates/tranquil-oauth
|
|
COPY crates/tranquil-db-traits ./crates/tranquil-db-traits
|
|
COPY crates/tranquil-infra ./crates/tranquil-infra
|
|
COPY crates/tranquil-auth ./crates/tranquil-auth
|
|
COPY crates/tranquil-comms ./crates/tranquil-comms
|
|
COPY crates/tranquil-db ./crates/tranquil-db
|
|
COPY crates/tranquil-ripple ./crates/tranquil-ripple
|
|
COPY crates/tranquil-storage ./crates/tranquil-storage
|
|
COPY crates/tranquil-cache ./crates/tranquil-cache
|
|
COPY crates/tranquil-pds ./crates/tranquil-pds
|
|
COPY crates/tranquil-sync ./crates/tranquil-sync
|
|
COPY crates/tranquil-api ./crates/tranquil-api
|
|
COPY crates/tranquil-oauth-server ./crates/tranquil-oauth-server
|
|
COPY crates/tranquil-store ./crates/tranquil-store
|
|
COPY crates/tranquil-signal ./crates/tranquil-signal
|
|
COPY crates/tranquil-server ./crates/tranquil-server
|
|
COPY migrations ./migrations
|
|
RUN --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.23
|
|
RUN apk add --no-cache ca-certificates
|
|
COPY --from=builder /tmp/tranquil-pds /usr/local/bin/tranquil-pds
|
|
COPY --from=frontend /app/dist /var/lib/tranquil-pds/frontend
|
|
WORKDIR /app
|
|
ENV SERVER_HOST=0.0.0.0
|
|
ENV SERVER_PORT=3000
|
|
EXPOSE 3000
|
|
CMD ["tranquil-pds"]
|