将Playwright服务部署至AWS ECR时依赖安装失败的求助
解决Lambda镜像中Playwright依赖安装失败的问题
问题原因
你使用的public.ecr.aws/lambda/python:3.8镜像基于Amazon Linux 2,而playwright install-deps默认会尝试调用Ubuntu的包管理工具apt-get,这就导致了apt-get: command not found的错误。
解决方案
方案1:指定系统类型执行Playwright依赖安装
修改Dockerfile中的playwright install-deps命令,加上--system amazon-linux参数,让Playwright适配Amazon Linux环境:
FROM public.ecr.aws/lambda/python:3.8 COPY requirements/prod.txt ${LAMBDA_TASK_ROOT} RUN python3 -m ensurepip RUN pip install -r prod.txt RUN playwright install RUN playwright install-deps --system amazon-linux ADD src ${LAMBDA_TASK_ROOT} CMD ["main.handler"]
方案2:手动用yum安装依赖
如果方案1仍有问题,可以直接使用Amazon Linux的包管理工具yum手动安装Playwright所需的依赖:
FROM public.ecr.aws/lambda/python:3.8 COPY requirements/prod.txt ${LAMBDA_TASK_ROOT} RUN python3 -m ensurepip RUN pip install -r prod.txt # 手动安装Amazon Linux 2环境下Playwright运行所需的系统依赖 RUN yum install -y atk cups-libs gtk3 libXcomposite libXcursor libXdamage libXext libXi libXrandr libXScrnSaver libXtst pango at-spi2-atk libXt alsa-lib libdrm mesa-libgbm nss nspr libuuid RUN playwright install ADD src ${LAMBDA_TASK_ROOT} CMD ["main.handler"]
注意事项
- 确保
requirements/prod.txt中包含playwright以及你需要的浏览器包(如playwright-chromium、playwright-firefox等) - 构建镜像时保证网络连接正常,若
yum install超时可适当调整构建配置
内容的提问来源于stack exchange,提问作者Daniel Avigdor
相关产品推荐
相关产品推荐

