Use slim Chromium runtime

This commit is contained in:
Codex
2026-07-08 00:41:15 +00:00
parent d704bb96d7
commit 3da6fdab49
5 changed files with 23 additions and 20 deletions
+12
View File
@@ -0,0 +1,12 @@
.git
.agents
.codex
node_modules
dist
dist-client
data
.env
.admin-token
*.log
playwright-report
test-results
+8 -3
View File
@@ -1,5 +1,6 @@
FROM mcr.microsoft.com/playwright:v1.45.0-jammy AS build
FROM node:20-bookworm-slim AS build
ENV PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1
WORKDIR /app
COPY package.json package-lock.json ./
RUN npm ci
@@ -9,21 +10,25 @@ COPY client ./client
RUN npm run build
RUN npm prune --omit=dev
FROM mcr.microsoft.com/playwright:v1.45.0-jammy
FROM node:20-bookworm-slim
ENV NODE_ENV=production
ENV AISHARE_PORT=8080
ENV AISHARE_DATA_DIR=/data
ENV PLAYWRIGHT_BROWSERS_PATH=/ms-playwright
ENV PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1
WORKDIR /app
RUN apt-get update \
&& apt-get install -y --no-install-recommends fonts-noto fonts-noto-cjk fonts-noto-color-emoji fonts-thai-tlwg \
&& apt-get install -y --no-install-recommends ca-certificates fonts-noto-core fonts-noto-cjk fonts-noto-color-emoji fonts-thai-tlwg \
&& rm -rf /var/lib/apt/lists/*
COPY --from=build /app/node_modules ./node_modules
COPY --from=build /app/dist ./dist
COPY --from=build /app/dist-client ./dist-client
COPY package.json ./
RUN ./node_modules/.bin/playwright install --with-deps --only-shell chromium \
&& npm cache clean --force \
&& rm -rf /var/lib/apt/lists/* /tmp/*
EXPOSE 8080
CMD ["node", "dist/server.js"]
+1 -15
View File
@@ -8,13 +8,13 @@
"name": "aishare",
"version": "0.1.0",
"dependencies": {
"@playwright/test": "^1.45.0",
"archiver": "^7.0.1",
"better-sqlite3": "^11.1.2",
"cheerio": "1.0.0",
"express": "^4.19.2",
"fs-extra": "^11.2.0",
"nanoid": "^5.0.7",
"playwright": "1.61.1",
"sanitize-filename": "^1.6.3",
"zod": "^3.23.8"
},
@@ -470,20 +470,6 @@
"node": ">=14"
}
},
"node_modules/@playwright/test": {
"version": "1.61.1",
"resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.61.1.tgz",
"integrity": "sha512-8nKv6+0RJSL9FE4jYOEGXnPeM/Hg12qZpmqzZjRh3qM0Y7c3z1mrOTfFLids72RDQYVh9WpLEfR5WdpNX4fkig==",
"dependencies": {
"playwright": "1.61.1"
},
"bin": {
"playwright": "cli.js"
},
"engines": {
"node": ">=18"
}
},
"node_modules/@rollup/rollup-android-arm-eabi": {
"version": "4.62.2",
"resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.62.2.tgz",
+1 -1
View File
@@ -10,13 +10,13 @@
"typecheck": "tsc --noEmit"
},
"dependencies": {
"@playwright/test": "^1.45.0",
"archiver": "^7.0.1",
"better-sqlite3": "^11.1.2",
"cheerio": "1.0.0",
"express": "^4.19.2",
"fs-extra": "^11.2.0",
"nanoid": "^5.0.7",
"playwright": "1.61.1",
"sanitize-filename": "^1.6.3",
"zod": "^3.23.8"
},
+1 -1
View File
@@ -1,7 +1,7 @@
import path from "node:path";
import fs from "fs-extra";
import * as cheerio from "cheerio";
import { chromium, type Browser } from "@playwright/test";
import { chromium, type Browser } from "playwright";
import { nanoid } from "nanoid";
import { store } from "./db.js";
import { config } from "./config.js";