mirror of
https://tangled.org/tranquil.farm/tranquil-pds
synced 2026-04-12 04:36:59 +00:00
64 lines
2.6 KiB
Docker
64 lines
2.6 KiB
Docker
FROM denoland/deno:alpine AS frontend
|
|
WORKDIR /app
|
|
COPY frontend/ ./
|
|
RUN deno task 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
|
|
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-server ./crates/tranquil-server
|
|
COPY migrations ./crates/tranquil-pds/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 AS signal-cli
|
|
RUN apk add --no-cache curl tar
|
|
ARG SIGNAL_CLI_VERSION=0.13.24
|
|
RUN curl -fsSL "https://github.com/AsamK/signal-cli/releases/download/v${SIGNAL_CLI_VERSION}/signal-cli-${SIGNAL_CLI_VERSION}-Linux-native.tar.gz" \
|
|
| tar xz -C /usr/local/bin
|
|
|
|
FROM debian:trixie-slim
|
|
RUN apt-get update && apt-get install -y --no-install-recommends msmtp ca-certificates \
|
|
&& rm -rf /var/lib/apt/lists/* \
|
|
&& ln -sf /usr/bin/msmtp /usr/sbin/sendmail
|
|
COPY --from=signal-cli /usr/local/bin/signal-cli /usr/local/bin/signal-cli
|
|
VOLUME /var/lib/signal-cli
|
|
COPY --from=builder /tmp/tranquil-pds /usr/local/bin/tranquil-pds
|
|
COPY --from=frontend /app/dist /var/lib/tranquil-pds/frontend
|
|
COPY migrations /app/migrations
|
|
WORKDIR /app
|
|
ENV SIGNAL_CLI_CONFIG=/var/lib/signal-cli
|
|
ENV SERVER_HOST=0.0.0.0
|
|
ENV SERVER_PORT=3000
|
|
EXPOSE 3000
|
|
CMD ["tranquil-pds"]
|