From fcd21dc871486a092de1deda9f2f535cc41fe6d9 Mon Sep 17 00:00:00 2001 From: Max Richter Date: Sat, 18 Jan 2025 01:30:43 +0100 Subject: [PATCH] fix: add missing dockerfile deps --- Dockerfile | 30 +++++++++--------------------- lib/playwright.ts | 6 +++--- 2 files changed, 12 insertions(+), 24 deletions(-) diff --git a/Dockerfile b/Dockerfile index 36905bd..077971c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,31 +1,19 @@ -FROM gcr.io/distroless/base-debian11 +FROM denoland/deno:alpine-2.1.4 ENV DATA_DIR=/app/data -ENV PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=0 WORKDIR /app COPY . . -# Install necessary libraries and dependencies for Playwright and your application -RUN apt-get update && apt-get install -y --no-install-recommends \ - curl \ - libstdc++6 \ - libgtk-3-0 \ - libnss3 \ - libxss1 \ - libasound2 \ - fonts-liberation \ - && curl -fsSL https://deno.land/x/install/install.sh | sh \ - && /root/.deno/bin/deno run -A npm:playwright install firefox \ - && /root/.deno/bin/deno install --allow-import --allow-ffi --allow-scripts=npm:sharp@0.33.5-rc.1 -e main.ts \ - && sed -i -e 's/"deno"/"no-deno"/' node_modules/@libsql/client/package.json \ - && mkdir -p $DATA_DIR \ - && rm -rf /var/lib/apt/lists/* +RUN apk add curl libstdc++ gtk+3.0 alsa-lib &&\ + deno run -A npm:playwright install chromium-headless-shell &&\ + deno install --allow-import --allow-ffi --allow-scripts=npm:sharp@0.33.5-rc.1 -e main.ts &&\ + sed -i -e 's/"deno"/"no-deno"/' node_modules/@libsql/client/package.json &&\ + mkdir -p $DATA_DIR + +RUN deno task build -# Expose port 8000 for the application EXPOSE 8000 -# Use the Deno binary from the installed path to start the app -CMD ["/root/.deno/bin/deno", "run", "-A", "main.ts"] - +CMD ["run", "-A", "main.ts"] diff --git a/lib/playwright.ts b/lib/playwright.ts index 4df57ff..2d2f102 100644 --- a/lib/playwright.ts +++ b/lib/playwright.ts @@ -1,4 +1,4 @@ -import { firefox } from "npm:playwright-extra"; +import { chromium } from "npm:playwright-extra"; import { createStreamResponse } from "@lib/helpers.ts"; import StealthPlugin from "npm:puppeteer-extra-plugin-stealth"; @@ -9,7 +9,7 @@ const userAgentStrings = [ "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36", ]; -firefox.use(StealthPlugin()); +chromium.use(StealthPlugin()); export async function fetchHtmlWithPlaywright( fetchUrl: string, @@ -17,7 +17,7 @@ export async function fetchHtmlWithPlaywright( ): Promise { streamResponse.enqueue("booting up playwright"); // Launch the Playwright browser - const browser = await firefox.launch(); + const browser = await chromium.launch(); streamResponse.enqueue("fetching html");