Dockerfile中执行playwright install-deps失败问题求助
问题原因
你的问题出在python:3.9-slim基础镜像的更新——现在它默认使用Debian Bookworm(12版本),而Playwright的install-deps命令仍在尝试安装针对旧版Debian/Ubuntu的依赖包,这些包在Bookworm里要么改名、要么被移除,导致安装失败。
解决方案
方案1:锁定基础镜像到Debian Bullseye版本(推荐,最快修复)
直接使用之前的Debian版本(Bullseye),和你之前正常运行的环境完全一致:
修改Dockerfile第一行:
FROM python:3.9-slim-bullseye
其余内容不变,重新执行docker-compose build即可。
方案2:改用Playwright官方Docker镜像(最稳定)
微软提供了预装好Playwright及所有依赖的官方镜像,完全规避依赖安装问题:
修改Dockerfile为:
FROM mcr.microsoft.com/playwright/python:v1.40.0-python3.9 COPY ../../requirements/dev.txt ./ RUN pip install -r dev.txt ENV PYTHONPATH "${PYTHONPATH}:/app/" WORKDIR /code/src EXPOSE 8000 COPY ./src /app CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000", "--reload"]
注:可根据需求选择对应Playwright版本的镜像,建议锁定版本避免后续更新引入新问题
方案3:手动替换Bookworm兼容的依赖包(适合必须用Bookworm的场景)
如果一定要用Debian Bookworm,可手动安装替代依赖包,替换playwright install-deps步骤:
修改Dockerfile中的依赖安装部分:
RUN python3 -m ensurepip RUN pip install -r dev.txt RUN playwright install # 手动安装Bookworm兼容的依赖,替代playwright install-deps RUN apt-get update && apt-get install -y --no-install-recommends \ fonts-unifont \ libjpeg-turbo6 \ libx264-163 \ libenchant-2-2 \ libicu72 \ libvpx7 \ libwebp7 \ xfonts-cyrillic
注:此方法需跟踪依赖版本变化,后续Playwright更新可能需要同步调整,稳定性不如前两个方案
内容的提问来源于stack exchange,提问作者Daniel Avigdor
相关产品推荐
相关产品推荐

