mirror of
https://tangled.org/tranquil.farm/tranquil-pds
synced 2026-02-08 13:20:41 +00:00
28 lines
884 B
Docker
28 lines
884 B
Docker
# Stage 1: Build frontend with Deno
|
|
FROM denoland/deno:alpine AS frontend-builder
|
|
WORKDIR /frontend
|
|
COPY frontend/ ./
|
|
RUN deno task build
|
|
# Stage 2: Build Rust backend
|
|
FROM rust:1.92-alpine AS builder
|
|
RUN apk add ca-certificates openssl openssl-dev pkgconfig
|
|
WORKDIR /app
|
|
COPY Cargo.toml Cargo.lock ./
|
|
RUN mkdir src && echo "fn main() {}" > src/main.rs && cargo build --release && rm -rf src
|
|
COPY src ./src
|
|
COPY tests ./tests
|
|
COPY migrations ./migrations
|
|
COPY .sqlx ./.sqlx
|
|
RUN touch src/main.rs && cargo build --release
|
|
# Stage 3: Final image
|
|
FROM alpine:3.23
|
|
COPY --from=builder /app/target/release/tranquil-pds /usr/local/bin/tranquil-pds
|
|
COPY --from=builder /app/migrations /app/migrations
|
|
COPY --from=frontend-builder /frontend/dist /app/frontend/dist
|
|
WORKDIR /app
|
|
ENV SERVER_HOST=0.0.0.0
|
|
ENV SERVER_PORT=3000
|
|
ENV FRONTEND_DIR=/app/frontend/dist
|
|
EXPOSE 3000
|
|
CMD ["tranquil-pds"]
|