Docker 和剧作家

6pp0gazn  于 2023-04-05  发布在  Docker
关注(0)|答案(4)|浏览(151)

我需要在docker里面安装playwright。这是我的dockerfile。

FROM python:3.9

EXPOSE 8000

WORKDIR /fastanalytics

COPY /requirements.txt /fastanalytics/requirements.txt

RUN pip install --no-cache-dir --upgrade -r /fastanalytics/requirements.txt

RUN playwright install
RUN playwright install-deps
RUN apt-get update && apt-get upgrade -y

但是当我安装时,我得到了下面的错误。我试图安装错误消息中的所有内容,但它没有帮助。

E: Package 'ttf-ubuntu-font-family' has no installation candidate
E: Unable to locate package libenchant1c2a
E: Unable to locate package libicu66
E: Package 'libjpeg-turbo8' has no installation candidate

vmdwslir

vmdwslir1#

微软为Playwright发布了一个python docker镜像
Dockerfile

# Build Environment: Playwright
FROM mcr.microsoft.com/playwright/python:v1.21.0-focal

# Add python script to Docker
COPY index.py /

# Run Python script
CMD [ "python", "index.py" ]

查看Playwright - Docker docs以获取最新的剧作家版本。

uidvcgyl

uidvcgyl2#

根据他们的文档(https://playwright.dev/python/docs/cli#install-system-dependencies),看起来他们只正式支持Ubuntu系统,而python:3.9基于Debian。尝试使用Ubuntu作为您的基础映像并在其上安装python:

FROM ubuntu:20.04

RUN apt update
RUN apt install python3.9

...
bvhaajcl

bvhaajcl3#

RUN apt-get update && playwright install-deps
虽然我没有使用过playwright,但这似乎是Docker的问题。Playwright似乎使用apt-get来安装依赖项。在这种情况下,您需要确保apt-get updateplaywright install-deps之前运行。虽然您可以使用两个单独的RUN语句来实现这一点,但由于Docker的缓存功能,apt-get update可能无法运行,因此不建议这样做。

roejwanj

roejwanj4#

有一个修复这个问题,为了让这个正常工作,你只需要在安装过程中将实际的 chrome 二进制文件安装到一个特定的目录,然后将该目录指定为环境变量。

# For more information, please refer to https://aka.ms/vscode-docker-python
FROM python:3.10.7

ENV PYTHONDONTWRITEBYTECODE=1
ENV PLAYWRIGHT_BROWSERS_PATH=/app/ms-playwright
# Turns off buffering for easier container logging
ENV PYTHONUNBUFFERED=1
#..... whatever else you need 
RUN pip install playwright
# install manually all the missing libraries
RUN apt-get install -y gconf-service libasound2 libatk1.0-0 libcairo2 libcups2 libfontconfig1 libgdk-pixbuf2.0-0 libgtk-3-0 libnspr4 libpango-1.0-0 libxss1 fonts-liberation libappindicator1 libnss3 lsb-release xdg-utils
RUN PLAYWRIGHT_BROWSERS_PATH=/app/ms-playwright python -m playwright install --with-deps chromium

如果它出错,尝试抛出一个

RUN sudo apt-get clean
RUN sudo apt-get update

在它之前

相关问题