Files
cupcontrol/Dockerfile
2025-12-26 01:23:31 +01:00

50 lines
1.1 KiB
Docker

# syntax=docker/dockerfile:1
# ---- Frontend build (Vite + React, pnpm) ----
FROM node:20-alpine AS frontend-build
WORKDIR /app/frontend
# Enable pnpm via Corepack
RUN corepack enable
# Install deps (cache-friendly)
COPY frontend/package.json frontend/pnpm-lock.yaml ./
RUN pnpm install --frozen-lockfile
# Build
COPY frontend/ ./
RUN pnpm build
# ---- Backend build (Rust + Actix) ----
FROM rust:1.92-bookworm AS backend-build
WORKDIR /app
# Cache Rust deps
COPY Cargo.toml Cargo.lock ./
COPY src ./src
COPY scp_core ./scp_core
# If you have a workspace / extra crates, copy them too (adjust):
# COPY crates ./crates
RUN cargo build --release
# ---- Runtime image ----
FROM debian:bookworm-slim AS runtime
WORKDIR /app
RUN apt-get update \
&& apt-get install -y --no-install-recommends ca-certificates \
&& rm -rf /var/lib/apt/lists/*
# Adjust binary name
COPY --from=backend-build /app/target/release/myapp /app/myapp
# Match your Actix static path: ./frontend/dist
COPY --from=frontend-build /app/frontend/dist /app/frontend/dist
ENV RUST_LOG=info
ENV HOST=0.0.0.0
EXPOSE 8080
CMD ["/app/myapp"]