Python Dockerfile在文件夹中运行scrapy crawl命令
我得到了一个scrapy spider,它可以在终端运行,在教程文件夹中有Python Dockerfile在文件夹中运行scrapy crawl命令,python,docker,scrapy,dockerfile,Python,Docker,Scrapy,Dockerfile,我得到了一个scrapy spider,它可以在终端运行,在教程文件夹中有scrapy crawl estate 如何使用Dockerfile to cd中的run命令将其复制到教程文件夹并运行它 我的Dockerfile(不含运行cd): FROM ubuntu:18.04 FROM python:3.6-onbuild RUN apt-get update &&apt-get upgrade -y&& apt-get install python-pip -
scrapy crawl estate
如何使用Dockerfile to cd中的run命令将其复制到教程文件夹并运行它
我的Dockerfile(不含运行cd):
FROM ubuntu:18.04
FROM python:3.6-onbuild
RUN apt-get update &&apt-get upgrade -y&& apt-get install python-pip -y
RUN pip install --upgrade pip
RUN pip install scrapy
WORKDIR /usr/local/bin
COPY scrapy_estate/tutorial/tutorial ./
COPY requirements.txt ./
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
EXPOSE 80
您应该在docker文件中设置WORKDIR、ENTRYPOINT和CMD:
WORKDIR /tutorial-crawler
ENTRYPOINT ["scrapy"]
CMD []
然后:
不确定,但是
CMD cd tutorial_folder&&scrapy crawl$SPIDER_NAME
may workdont CMD命令需要[]括号吗?不,我在我的项目中就是这样使用的:CMD scrapy crawl$SPIDER_NAME
。哦,好的,我会尝试你应该使用WORKDIR,而不是像RUN cd…&&do这样的大量指令,它们很难阅读,排除故障,并进行维护。您确实应该更喜欢CMD而不是ENTRYPOINT。(考虑非常有用的docker运行--rm-it imagename sh
:设置入口点会打破这一点。)@DavidMaze为什么?如果希望使用scrapydocker run之外的其他东西,您可以使用--entrypoint
标志覆盖entrypoint--it--entrypoint bash imagename
exec“$@”
CMD,如果涉及到该设置,docker运行。。。sh
form进行首次设置,然后提供一个shell,非常有用。
$ docker run -it image_name list
tutorial
$ docker run -it image_name crawl tutorial