将已删除的数据csv文件从docker容器内部保存到本地主机

时间:2017-12-06 17:17:16

标签: python docker web-scraping google-cloud-shell

我运行一个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中。任何帮助将不胜感激

1 个答案:

答案 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"