docker: 3-binary deployment (presentation, worker, playout)
This commit is contained in:
@@ -1,31 +1,30 @@
|
||||
FROM rust:1.92 AS builder
|
||||
|
||||
WORKDIR /app
|
||||
COPY . .
|
||||
RUN cargo build --release -p presentation -p worker -p playout
|
||||
|
||||
# Build the release binary
|
||||
RUN cargo build --release -p api
|
||||
|
||||
FROM debian:bookworm-slim
|
||||
|
||||
# Presentation image
|
||||
FROM debian:bookworm-slim AS presentation
|
||||
WORKDIR /app
|
||||
|
||||
# Install OpenSSL, CA certs, and ffmpeg (provides ffprobe for local-files duration scanning)
|
||||
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||
libssl3 \
|
||||
ca-certificates \
|
||||
ffmpeg \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
COPY --from=builder /app/target/release/api .
|
||||
|
||||
|
||||
# Create data directory for SQLite
|
||||
RUN apt-get update && apt-get install -y --no-install-recommends libssl3 ca-certificates && rm -rf /var/lib/apt/lists/*
|
||||
COPY --from=builder /app/target/release/k-tv .
|
||||
RUN mkdir -p /app/data
|
||||
|
||||
ENV DATABASE_URL=sqlite:///app/data/template.db
|
||||
ENV SESSION_SECRET=supersecretchangeinproduction
|
||||
|
||||
EXPOSE 3000
|
||||
CMD ["./k-tv"]
|
||||
|
||||
CMD ["./api"]
|
||||
# Worker image
|
||||
FROM debian:bookworm-slim AS worker
|
||||
WORKDIR /app
|
||||
RUN apt-get update && apt-get install -y --no-install-recommends libssl3 ca-certificates ffmpeg && rm -rf /var/lib/apt/lists/*
|
||||
COPY --from=builder /app/target/release/k-tv-worker .
|
||||
RUN mkdir -p /app/data
|
||||
CMD ["./k-tv-worker"]
|
||||
|
||||
# Playout image
|
||||
FROM debian:bookworm-slim AS playout
|
||||
WORKDIR /app
|
||||
RUN apt-get update && apt-get install -y --no-install-recommends libssl3 ca-certificates ffmpeg && rm -rf /var/lib/apt/lists/*
|
||||
COPY --from=builder /app/target/release/k-tv-playout .
|
||||
RUN mkdir -p /app/data /tmp/k-tv-playout
|
||||
EXPOSE 9090
|
||||
CMD ["./k-tv-playout"]
|
||||
|
||||
Reference in New Issue
Block a user