【发布时间】:2021-09-02 04:34:44
【问题描述】:
我用下面的 Docker 文件创建了一个 docker 镜像。它会安装最新版本的 Google Chrome 和 chrome 驱动程序。以及其他 pip 包。
Dockerfile
FROM python:3.9
# Install Chrome WebDriver
RUN CHROMEDRIVER_VERSION=`curl -sS chromedriver.storage.googleapis.com/LATEST_RELEASE` && \
mkdir -p /opt/chromedriver-$CHROMEDRIVER_VERSION && \
curl -sS -o /tmp/chromedriver_linux64.zip http://chromedriver.storage.googleapis.com/$CHROMEDRIVER_VERSION/chromedriver_linux64.zip && \
unzip -qq /tmp/chromedriver_linux64.zip -d /opt/chromedriver-$CHROMEDRIVER_VERSION && \
rm /tmp/chromedriver_linux64.zip && \
chmod +x /opt/chromedriver-$CHROMEDRIVER_VERSION/chromedriver && \
ln -fs /opt/chromedriver-$CHROMEDRIVER_VERSION/chromedriver /usr/local/bin/chromedriver
# Install Google Chrome
RUN curl -sS -o - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add - && \
echo "deb http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google-chrome.list && \
apt-get -yqq update && \
apt-get -yqq install google-chrome-stable && \
rm -rf /var/lib/apt/lists/*
COPY requirements.txt .
RUN pip install -r requirements.txt
WORKDIR /seltesting
COPY ./app ./app
CMD ["python", "./app/main.py"]
chromedriver.exe 文件位于容器中,正如我在 CLI 中找到的那样。它在这个目录'/usr/local/bin/chromedriver'中。
python 代码
driver = webdriver.Chrome(options=options, executable_path='/usr/local/bin/chromedriver')
我正在使用 venv,因为我也在使用烧瓶来创建使用 chrome 驱动程序的微服务。这会导致问题吗?
任何帮助将不胜感激,因为我已经坚持了很长时间。
【问题讨论】:
-
你能在容器中手动启动那个可执行文件吗?
-
你也可以分享你得到的错误的确切文本吗?
-
嗨@AlexeyR。非常感谢您的帮助,当我在容器中执行文件时收到此消息 - 在端口 9515 上启动 ChromeDriver 92.0.4515.107 (87a818b10553a07434ea9e2b6dccf3cbe7895134-refs/branch-heads/4515@{#1634}) 仅允许本地连接。请参阅chromedriver.chromium.org/security-considerations 获取有关确保 ChromeDriver 安全的建议。 [1630890753.041][严重]:绑定()失败:无法分配请求的地址(99)ChromeDriver已成功启动。
-
@AlexeyR。感谢您的帮助。我刚刚尝试了该解决方案,即使我不再收到该错误。仍然找不到 chrome 驱动程序。在端口 9515 上启动 ChromeDriver 92.0.4515.107 (87a818b10553a07434ea9e2b6dccf3cbe7895134-refs/branch-heads/4515@{#1634}) 只允许本地连接。请参阅chromedriver.chromium.org/security-considerations 获取有关确保 ChromeDriver 安全的建议。 ChromeDriver 已成功启动我正在尝试在 Flask 应用程序中运行 chromedriver,您知道这是否会导致我出现问题吗?