python - 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"}
解决方案
我遇到了同样的问题,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
然后它似乎是行为。
推荐阅读
- shader - 为什么这个着色器变量不会改变?(dx12,hlsl)
- aspnetboilerplate - Abp Boilerplate NET core DevExpress XtraReport WebDocumentViewer 无法打印或导出
- python - Python代码到具有不同名称的多个JSON文件
- mysql - MYSQL GroupBy 只需要取值
- python - 一次一轮循环调度算法
- mysql - 基于同一行值的 MySQL Sum 查询
- proxy - 代理 url 不指向目标 url
- javascript - 将状态从父组件传递给子函数
- asp.net-core - 如何根据从另一个 dbcontext 获取的数据库名称加载动态 dbcontext?
- c# - 如何仅使用 y 轴或使用 transform.lookat 命令锁定 x 和 z 轴进行旋转 {unity}