python - Scrapy-Splash:无法使用 scrapinghub/splash:latest 作为基础镜像运行 docker 容器
问题描述
我正在构建一个使用一些 Azure 服务和 Scrapy-Splash 的 python Scrapy 应用程序。我尝试在本地 Windows 机器中为我的应用程序创建一个 docker 镜像scrapinghub/splash:latest
作为基础镜像。
下面是正在使用的 Dockerfile,
FROM scrapinghub/splash:latest
WORKDIR /usr/src/snapshot
ADD requirements.txt ./
RUN pip install -r requirements.txt
ADD . ./
EXPOSE 8888 80
ENTRYPOINT ["/usr/src/snapshot/init_container.sh"]
init_container.sh文件有运行应用程序的语句,python /usr/src/snapshot/SiteCrawler.py
.
现在,当我使用命令运行 docker 映像时docker run testsnapshot:0.1
,应用程序由于导入错误而启动和停止,ImportError: No module named azure.servicebus
我尝试使用 python:3.6.6 作为基础图像创建应用程序的 docker 图像,它工作正常。
应用程序构建 docker 映像并正确安装 requirements.txt 中的包。在我的 requirements.txt 内容下面附加
asn1crypto==0.24.0
attrs==18.2.0
Automat==0.7.0
azure-common==1.1.16
azure-nspkg==3.0.2
azure-servicebus==0.21.1
azure-storage==0.36.0
certifi==2018.10.15
cffi==1.11.5
chardet==3.0.4
constantly==15.1.0
cryptography==2.3.1
cssselect==1.0.3
hyperlink==18.0.0
idna==2.7
incremental==17.5.0
lxml==4.2.5
parsel==1.5.0
pip==18.0
pyasn1==0.4.4
pyasn1-modules==0.2.2
pycparser==2.19
PyDispatcher==2.0.5
PyHamcrest==1.9.0
pyOpenSSL==18.0.0
python-dateutil==2.7.3
queuelib==1.5.0
requests==2.20.0
Scrapy==1.5.1
scrapy-splash==0.7.2
service-identity==17.0.0
setuptools==39.0.1
six==1.11.0
Twisted==16.1.1
urllib3==1.24
w3lib==1.19.0
zope.interface==4.5.0
解决方案
知道了。只需将WORKDIR /usr/src/snapshot添加到VOLUME,如下所示。
VOLUME ["/usr/src/snapshot"]
推荐阅读
- objective-c - 如何在 Mac OS 上从框架文件中查看接口规范
- amazon-s3 - 我在哪里编写 kafka 连接接收器自定义分区器的代码?
- flutter - 从flutter-web向fastapi服务器发出http get请求时出错
- c# - 使用命名管道/流转换和输出到流不包含流持续时间
- javascript - 使用数据属性重新排序子元素并应用显示/隐藏
- android - Android 应用程序通过点击 nfc 标签自动启动特定活动
- plc - 在 Twincat 3 中获取枚举的字符串值
- azure - 如何为 Databricks 的 azure daafactory 覆盖 CI/CD 管道的参数(工作区 URL 和集群 ID)
- python - 根据另一个列表列表合并数据框列表
- c# - 如何在存储过程中使用 DateTime.Now 而不会出错