Docker容器中AdonisJS项目的Playwright浏览器启动失败问题
Docker化AdonisJS项目中Playwright无法启动浏览器的问题
运行容器时Playwright无法启动浏览器,报错如下:
M browserType.launch: Executable doesn't exist at /root/.cache/ms-playwright/chromium-1105/chrome-linux/chrome

我的Dockerfile如下:
FROM node:20.11.1-alpine as base # Install dependencies needed by Playwright RUN apk add --no-cache \ libxkbcommon \ dbus \ ttf-freefont \ udev \ xvfb \ zlib \ chromium \ chromium-chromedriver \ nss \ freetype \ freetype-dev \ harfbuzz \ ca-certificates \ && rm -rf /var/cache/apk/* # install dependences FROM base as deps WORKDIR /app COPY . . COPY package.json package-lock.json ./ RUN npm install # Install Playwright and browsers RUN npx playwright install # Production only deps stage FROM base as production-deps WORKDIR /app ADD package.json package-lock.json ./ RUN npm install # Install Playwright and browsers RUN npx playwright install # Build FROM base as build WORKDIR /app COPY --from=deps /app/node_modules /app/node_modules COPY . . COPY .env.example .env RUN npm run build # Set the entry point for the container FROM base ENV NODE_ENV=production WORKDIR /app COPY --from=production-deps /app/node_modules /app/node_modules COPY --from=build /app/build /app COPY .env.example .env EXPOSE 3333 CMD ["node", "./bin/server.js"]
Dockerfile已安装Playwright和AdonisJS项目所需的所有依赖,构建过程中确认执行了npx playwright install,且已将包括模块在内的所有文件复制到app目录中。尝试过相关解决方案但无效。
Package JSON如下:
{ "name": "", "version": "0.0.0", "private": true, "type": "module", "license": "UNLICENSED", "scripts": { "start": "node bin/server.js", "build": "node ace build", "dev": "node ace serve --watch", "test": "node ace test", "lint": "eslint .", "format": "prettier --write .", "typecheck": "tsc --noEmit" }, "imports": { "#controllers/*": "./app/controllers/*.js", "#exceptions/*": "./app/exceptions/*.js", "#models/*": "./app/models/*.js", "#mails/*": "./app/mails/*.js", "#services/*": "./app/services/*.js", "#listeners/*": "./app/listeners/*.js", "#events/*": "./app/events/*.js", "#middleware/*": "./app/middleware/*.js", "#validators/*": "./app/validators/*.js", "#providers/*": "./providers/*.js", "#policies/*": "./app/policies/*.js", "#abilities/*": "./app/abilities/*.js", "#database/*": "./database/*.js", "#start/*": "./start/*.js", "#tests/*": "./tests/*.js", "#config/*": "./config/*.js" }, "devDependencies": { "@adonisjs/assembler": "^7.1.1", "@adonisjs/eslint-config": "^1.2.1", "@adonisjs/prettier-config": "^1.2.1", "@adonisjs/tsconfig": "^1.2.1", "@japa/api-client": "^2.0.2", "@japa/assert": "^2.1.0", "@japa/plugin-adonisjs": "^3.0.0", "@japa/runner": "^3.1.1", "@swc/core": "^1.3.107", "@types/hbs": "^4.0.4", "@types/jsdom": "^21.1.6", "@types/luxon": "^3.4.2", "@types/node": "^20.11.25", "autoprefixer": "^10.4.17", "eslint": "^8.56.0", "pino-pretty": "^10.3.1", "postcss": "^8.4.35", "tailwindcss": "^3.4.1", "ts-node": "^10.9.2", "typescript": "^5.3.3", "vite": "^5.1.4" }, "dependencies": { "@adonisjs/auth": "^9.1.1", "@adonisjs/core": "^6.2.2", "@adonisjs/cors": "^2.2.1", "@adonisjs/lucid": "^20.1.0", "@adonisjs/session": "^7.1.1", "@adonisjs/vite": "^2.0.2", "@vinejs/vine": "^1.7.1", "better-sqlite3": "^9.4.3", "edge.js": "^6.0.1", "handlebars": "^4.7.8", "hbs": "^4.2.0", "jsdom": "^24.0.0", "luxon": "^3.4.4", "playwright": "^1.42.0", "puppeteer": "^22.3.0", "reflect-metadata": "^0.2.1" }, "eslintConfig": { "extends": "@adonisjs/eslint-config/app" }, "prettier": "@adonisjs/prettier-config" }
请问我的Docker配置或Playwright设置中是否存在遗漏的地方?希望能得到相关建议或见解。
内容的提问来源于stack exchange,提问作者Izlia
相关产品推荐
相关产品推荐

