最初在该主题上发布了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
答案 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.py
在search_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