首页 > 解决方案 > Python scrapy+selenium scraper docker build 报错(错误码100)

问题描述

我正在尝试将 python 刮板部署到需要 selenium geckodriver 和 firefox 的 docker。我在尝试构建 docker 映像时遇到 docker error 100。这是码头工人代码

FROM scrapinghub/scrapinghub-stack-scrapy:1.3-py3
#RUN apt-get install -y apt-transport-https unzip
RUN apt-get install unzip
RUN printf "deb http://archive.debian.org/debian/ jessie main\ndeb-src http://archive.debian.org/debian/ jessie main\ndeb http://security.debian.org jessie/updates main\ndeb-src http://security.debian.org jessie/updates main" > /etc/apt/sources.list

#============================================
# Firefox and Geckodriver
#============================================
RUN apt-get update                             \
&& apt-get install -y --no-install-recommends ca-certificates curl firefox-esr \
&& rm -fr /var/lib/apt/lists/*                \
&& curl -L https://github.com/mozilla/geckodriver/releases/download/v0.24.0/geckodriver-v0.24.0-linux64.tar.gz | tar xz -C /usr/local/bin \
&& apt-get purge -y ca-certificates curl

ENV TERM xterm
ENV SCRAPY_SETTINGS_MODULE <my_project_name>.settings
RUN mkdir -p /app
WORKDIR /app
COPY ./requirements.txt /app/requirements.txt
RUN pip install -r requirements.txt
COPY . /app
RUN python setup.py install

这是最终出现在我的终端上的日志

Error The command '/bin/sh -c apt-get update                              && apt-get install -y --no-install-recommends ca-certificates curl firefox-esr  && rm -fr /var/lib/apt/lists/* 
&& curl -L https://github.com/mozilla/geckodriver/releases/download/v0.24.0/geckodriver-v0.24.0-linux64.tar.gz | tar xz -C /usr/local/bin  && apt-get purge -y ca-certificates curl' 
returned a non-zero code: 100: 
{'code': 100, 'message': "The command '/bin/sh -c apt-get update                              && apt-get install -y --no-install-recommends ca-certificates curl firefox-esr  && rm -fr /var/lib/apt/lists/* 
&& curl -L https://github.com/mozilla/geckodriver/releases/download/v0.24.0/geckodriver-v0.24.0-linux64.tar.gz | tar xz -C /usr/local/bin  
&& apt-get purge -y ca-certificates curl' returned a non-zero code: 100"}

标签: pythonlinuxdockerubuntuselenium-webdriver

解决方案


我遇到了同样的问题,docker build .直接运行时,它给了我以下指向该问题的日志行:

#9 23.59 W: GPG error: http://archive.debian.org jessie Release: The following signatures were invalid: KEYEXPIRED 1587841717

如果我删除该行: RUN printf "deb http://archive.debian.org/debian/ jessie main\ndeb-src http://archive.debian.org/debian/ jessie main\ndeb http://security.debian.org jessie/updates main\ndeb-src http://security.debian.org jessie/updates main" > /etc/apt/sources.list

然后它似乎是行为。


推荐阅读