我正在运行一个小的Python脚本,该脚本从公共网站上抓取一些数据。
当我使用selenium:latest图像在交互式终端中逐行运行Dockerfile指令时,脚本运行良好。
docker run -it -v /Users/me/Desktop/code/scraper/:/scraper selenium/standalone-firefox bash
使用Dockerfile和docker-compose文件运行它时,我立即收到此错误:
app_1 | selenium.common.exceptions.WebDriverException: Message: invalid argument: can't kill an exited process
我正在使用MOZ_HEADLESS = 1 env var。传递正确。
我尝试以root以外的其他人身份运行脚本,但随后出现日志错误。
Dockerfile
FROM selenium/standalone-firefox:latest
# https://github.com/SeleniumHQ/docker-selenium/issues/725
USER root
RUN apt-get update -y
RUN apt-get install -y firefox python-pip
WORKDIR /scraper
COPY . /scraper
RUN pip install -r /scraper/requirements.txt
ENV MOZ_HEADLESS=1
CMD ["python", "/scraper/browserscraper.py"]
如果我从交互式终端在Dockerfile中运行这些指令,则没有问题。
这要么与用户通过Dockerfile以root身份运行脚本有关,要么与它缺少用于输出的屏幕有关,因为实际上并没有像在命令行中使用{{ 1}}。
有什么想法吗?