Files
remotion_service/Dockerfile
T
Daniil 6e82165566
compute / deploy (push) Has been cancelled
chore: agentic upgrade
2026-05-17 02:12:18 +03:00

67 lines
1.9 KiB
Docker

# syntax=docker/dockerfile:1.7-labs
# ---------------------------------------------------------------------------
# Stage 1: base - system dependencies shared by install and production
# ---------------------------------------------------------------------------
FROM oven/bun:1.3.10 AS base
ENV APP_HOME=/app \
PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=1 \
REMOTION_PUPPETEER_NO_SANDBOX=1 \
NODE_ENV=production
WORKDIR ${APP_HOME}
RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
--mount=type=cache,target=/var/lib/apt,sharing=locked \
apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
ca-certificates \
ffmpeg \
chromium \
libglib2.0-0 \
libnss3 \
libatk1.0-0 \
libatk-bridge2.0-0 \
libdrm2 \
libxkbcommon0 \
libgbm1 \
fonts-noto-color-emoji \
curl \
&& rm -rf /var/lib/apt/lists/*
# ---------------------------------------------------------------------------
# Stage 2: deps - install Bun dependencies without project code
# ---------------------------------------------------------------------------
FROM base AS deps
WORKDIR ${APP_HOME}
COPY package.json bun.lock ./
RUN NODE_ENV=development bun install --frozen-lockfile
# ---------------------------------------------------------------------------
# Stage 3: prod - production target used by compute deployments
# ---------------------------------------------------------------------------
FROM base AS prod
WORKDIR ${APP_HOME}
COPY --from=deps ${APP_HOME}/node_modules ./node_modules
COPY package.json bun.lock ./
COPY tsconfig.json remotion.config.ts ./
COPY public ./public
COPY src ./src
COPY server ./server
RUN mkdir -p out
# Reuse the existing bun:bun user (UID/GID 1000) from the base image
RUN chown -R bun:bun /app
USER bun
EXPOSE 8001
CMD ["bun", "run", "server"]
# Backward-compatible target for the existing local docker-compose.yml.
FROM prod AS runner