Docker未将输出保存到文件

时间:2018-09-13 17:13:27

标签: python docker

最初在该主题上发布了this。回答后,csv将保存到指定的目录。现在它将创建一个新目录(/ data),但csv不存在。我不确定为什么这不再起作用。如果没有docker,python脚本将按预期运行。

我正在运行的命令:

docker build -t dock ./search_api
docker run -v ~/twitter-data/data:/app/ dock

并获得以下输出:

Downloaded 220 tweets, Saved to /search/tweets.csv

这是Dockerfile

# Use an official Python runtime as a parent image
FROM python:3.6-slim

# Set the working directory to /app
WORKDIR /search

# Copy the current directory contents into the container at /app
ADD . /search

# Install any needed packages specified in requirements.txt
RUN pip install --trusted-host pypi.python.org -r requirements.txt

# Run app.py when the container launches
CMD ["python", "search.py"]

Search.py​​附加到tweets.csv

2 个答案:

答案 0 :(得分:1)

您绑定到容器中错误的目录。如果收到的输出是Saved to /search/tweets.csv,则需要将安装目录绑定到/search而不是app

到目前为止,您正在将目录/app从容器内部映射到您的主机,我认为即使在容器内部,主机也为空。

要解决您的问题,只需将docker run命令更改为:

$ docker run -v ~/twitter-data/data:/search/ dock

答案 1 :(得分:0)

好吧,是因为卷为~/twitter-data/data,但是search.py / app.pysearch_api目录中。感谢您的帮助,对不起,我没有提供所有信息。

twitter-data
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── LICENSE
├── README.md
├── __pycache__
│   └── config.cpython-36.pyc
├── ci
│   └── build-images.sh
├── data
│   └── tweets.csv
├── images
│   └── test
│       └── Dockerfile
└── search_api
    ├── Dockerfile
    ├── __pycache__
    │   └── config.cpython-36.pyc
    ├── app.py
    ├── config.py
    └── requirements.txt