【发布时间】:2021-12-23 19:36:06
【问题描述】:
我正在尝试使用 playwright 在我的 java 应用程序中生成 pdf。这是工作正常的语言环境,但是当使用 Beanstalk 在 ec2 上部署它时,我收到以下错误:
Nov 11 09:17:32 ip-172-xx-xx-2 web: 2021-11-11 09:17:32.927 ERROR 17681 --- [io-5000-exec-10] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is com.microsoft.playwright.PlaywrightException: Error {
Nov 11 09:17:32 ip-172-xx-xx-2 web: message='Host system is missing dependencies!
Nov 11 09:17:32 ip-172-xx-xx-2 web: Missing libraries are:
Nov 11 09:17:32 ip-172-xx-xx-2 web: libatk-1.0.so.0
Nov 11 09:17:32 ip-172-xx-xx-2 web: libatk-bridge-2.0.so.0
Nov 11 09:17:32 ip-172-xx-xx-2 web: libcups.so.2
Nov 11 09:17:32 ip-172-xx-xx-2 web: libxkbcommon.so.0
Nov 11 09:17:32 ip-172-xx-xx-2 web: libXcomposite.so.1
...
当然,错误消息非常简单。缺少依赖项! 我已经知道我可以通过 CLI 工具安装这些依赖项,但我不知道在哪里安装它以及如何通过 CodePipeline 与 CodeBuild 和 CodeDeploy 在我的构建过程中安装它。 这是您可以在这里找到的命令:https://playwright.dev/java/docs/cli/#install-system-dependencies
mvn exec:java -e -Dexec.mainClass=com.microsoft.playwright.CLI -Dexec.args="install-deps"
所以问题是:我在哪里以及如何在我的 CodePipeline 中安装 Playwright 依赖项以使用 beanstalk 在 ec2 上运行它?
提前致谢!
【问题讨论】:
-
嗯...如果您尝试从您的 ec2 实例运行
mvn install会发生什么? -
另外,您可以制作应用程序的 Docker 映像并在 Docker 引擎中的 EC2 上运行它
-
我认为使用
mvn packagemaven 知道的所有必要依赖项都被打包到 jar 文件中 -
将整个 CD 流程更改为 docker 并远离 beanstalk 已提上日程,但还有一点路要走
-
看我的回答。并不总是这样。
标签: java amazon-elastic-beanstalk aws-codepipeline playwright