You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在CodePipeline中为EC2 Beanstalk的Java应用安装Playwright依赖

解决方案

以下3种方案可按需选择:

方案1:通过Elastic Beanstalk .ebextensions配置执行(优先推荐,无需修改现有Pipeline流程)

直接在Java项目根目录新建.ebextensions文件夹,在文件夹内创建playwright-deps.config配置文件,内容如下:

commands:
  install_playwright_deps:
    command: mvn exec:java -e -Dexec.mainClass=com.microsoft.playwright.CLI -Dexec.args="install-deps"
    cwd: /var/app/staging/
    ignoreErrors: false

将.ebextensions文件夹和应用代码一起打包进部署包,Beanstalk部署时会自动在EC2实例上执行该命令安装依赖。

方案2:在CodeDeploy生命周期钩子中执行

如果你的流程中使用CodeDeploy做部署,可在appspec.yml中添加钩子脚本:

  1. 项目根目录新建scripts文件夹,创建install-playwright-deps.sh脚本,内容如下:
#!/bin/bash
cd /var/app/staging/
mvn exec:java -e -Dexec.mainClass=com.microsoft.playwright.CLI -Dexec.args="install-deps"

给脚本添加执行权限:chmod +x scripts/install-playwright-deps.sh
2. 修改appspec.yml添加钩子配置:

version: 0.0
os: linux
hooks:
  AfterInstall:
    - location: scripts/install-playwright-deps.sh
      runas: root

将脚本和配置文件一起打进部署包,CodeDeploy执行到对应阶段会自动运行脚本安装依赖。

方案3:预构建自定义AMI(适合稳定的大规模部署场景)

提前基于你当前使用的Elastic Beanstalk基础镜像启动一台EC2实例,手动执行一遍Playwright依赖安装命令,然后将该实例制作为自定义AMI。之后在Elastic Beanstalk环境配置中指定使用该自定义AMI启动实例,新实例默认就包含所有需要的依赖,无需每次部署重复安装。

注意事项

  • 依赖安装命令必须在部署应用的目标EC2实例上执行,不能在CodeBuild构建环境执行,构建环境安装的依赖不会同步到部署的EC2实例。
  • 执行安装命令时必须使用root权限,否则无法写入系统目录安装依赖包。
  • 执行mvn命令的目录下必须包含你的项目pom.xml,且已正确引入Playwright相关依赖。

内容的提问来源于stack exchange,提问作者FloHiwg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 19:15:09