From 6ae9b32e87b324957958cfe22259ec8213c6f732 Mon Sep 17 00:00:00 2001 From: Oscar Date: Thu, 28 May 2026 15:48:09 +0300 Subject: [PATCH] =?UTF-8?q?=F0=9F=93=A6=20=20refactor(Dockerfile):=20?= =?UTF-8?q?=D0=A3=D0=B4=D0=B0=D0=BB=D0=B5=D0=BD=D1=8B=20=D0=BF=D0=BE=D0=B2?= =?UTF-8?q?=D1=82=D0=BE=D1=80=D1=8F=D1=8E=D1=89=D0=B8=D0=B5=D1=81=D1=8F=20?= =?UTF-8?q?=D1=83=D1=81=D1=82=D0=B0=D0=BD=D0=BE=D0=B2=D0=BA=D0=B8=20=D0=B7?= =?UTF-8?q?=D0=B0=D0=B2=D0=B8=D1=81=D0=B8=D0=BC=D0=BE=D1=81=D1=82=D0=B5?= =?UTF-8?q?=D0=B9,=20=D1=83=D0=BB=D1=83=D1=87=D1=88=D0=B5=D0=BD=D0=B0=20?= =?UTF-8?q?=D0=BF=D1=80=D0=BE=D0=B8=D0=B7=D0=B2=D0=BE=D0=B4=D0=B8=D1=82?= =?UTF-8?q?=D0=B5=D0=BB=D1=8C=D0=BD=D0=BE=D1=81=D1=82=D1=8C=D1=80=D1=8B?= =?UTF-8?q?=D0=BD=D0=BE=D1=81=D1=82=D1=8C.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/Dockerfile b/Dockerfile index 156415e..393fc71 100644 --- a/Dockerfile +++ b/Dockerfile @@ -3,7 +3,6 @@ FROM node:22-slim AS builder WORKDIR /app -# build tools for native modules RUN apt-get update && apt-get install -y --no-install-recommends \ python3 make g++ \ && rm -rf /var/lib/apt/lists/* @@ -13,6 +12,9 @@ RUN corepack enable RUN yarn install --immutable +# Download Chromium into /root/.cache/ms-playwright (with deps for builder OS) +RUN npx playwright install --with-deps chromium + COPY tsconfig.json ./ COPY prisma ./prisma COPY src ./src @@ -23,15 +25,13 @@ RUN yarn prisma generate FROM node:22-slim AS runner WORKDIR /app + RUN apt-get update && apt-get install -y --no-install-recommends openssl && rm -rf /var/lib/apt/lists/* RUN corepack enable && npm install -g opencode-ai COPY --from=builder /app/node_modules ./node_modules -# Copy Playwright browser binary and install only system deps (no re-download) -# install Chromium + all system dependencies for Playwright -RUN npx playwright install --with-deps chromium - +# Copy pre-downloaded browser binary, then install only system deps (no re-download) COPY --from=builder /root/.cache/ms-playwright /root/.cache/ms-playwright RUN npx playwright install-deps chromium @@ -39,12 +39,10 @@ COPY --from=builder /app/src ./src COPY --from=builder /app/prisma ./prisma COPY package.json yarn.lock .yarnrc.yml tsconfig.json ./ -# SQLite data lives on a volume so it survives container restarts RUN mkdir -p /data ENV DATABASE_URL="file:/data/dev.db" ENV NODE_ENV=production VOLUME ["/data"] -# apply pending migrations then start the bot CMD ["sh", "-c", "npx prisma migrate deploy && npx tsx src/index.ts"]