我运行一个python webscraper来收集各种网站上的文章,然后我将其保存为csv文件。我一直在手动运行这些,但最近一直试图在谷歌云外壳中运行它们。我在依赖项方面遇到了一些麻烦,所以我决定构建一个docker镜像来运行我的python scraper
到目前为止,我已经设法创建了一个Dockerfile,用于构建具有所有必需依赖项的容器。
FROM python:3
# Set the working directory to /app
WORKDIR /app
# Copy the current directory contents into the container at /app
ADD . /app
# Install any needed packages specified in requirements.txt
RUN pip install --trusted-host pypi.python.org -r requirements.txt
RUN pip install lxml
COPY Fin24 ./Fin24
COPY scraped_list.csv ./scraped_list.csv
# Run fin24.py when the container launches
CMD ["python3", "fin24.py"]
fin24.py包含我的刮刀。 Fin24是一个txt文件,它包含我的scraper为文章链接抓取的所有基本URL,然后进入每篇文章并提取内容。 scraped_list.csv包含我之前删除过的所有网站,我的python脚本会检查这些网站以确保我不会再刮掉同一篇文章。
运行上述内容后,我发现它可以正常运行。在找到所有找到的网站后,python脚本停止。但是,我猜它是在docker容器中保存csv文件(输出)。我怎么能把它保存到我正在运行docker的目录中?
最终我想简单地将Dockerfile上传到我的Google云端shell,并将其作为cronjob运行,并将所有输出保存在shell中。任何帮助将不胜感激
答案 0 :(得分:0)
您需要在docker部署中安装该路径。为此你需要做两件事: 1.在Dockerfile中添加一个卷
WORKDIR /path/in/container
VOLUME ["/path/in/container"]
2。使用-v选项运行容器
docker run -i -t -v /path/on/host:/path/in/container:rw "container name"