Docker input/output outside the container
docker run /app/script.py --input /data/input.csv --output /data/output.csv
Since the input file can be different every time I run the script, I want it to be outside the docker container. I also would like to store the output somewhere outside the container.
docker run /app/script.py --input /my/local/location/outside/docker/input.csv --output /my/local/location/outside/docker/output.csv
Does docker support this? If so, how would one be able to achieve it?
Dockerfile looks like the following:
FROM phusion/baseimage RUN apt-get update RUN apt-get install -y build-essential RUN apt-get install -y python-dev RUN apt-get install -y python-pip RUN apt-get install -y python-numpy && \ apt-get install -y python-scipy COPY ./requirements.txt /app/requirements.txt COPY ./src/script.py /app/script.py WORKDIR /app COPY . /app
2 Solutions collect form web for “Docker input/output outside the container”
You could mount a directory with the file inside as a Docker data volume using the -v option: https://docs.docker.com/engine/tutorials/dockervolumes/
docker run -d -P --name myapp -v /app mydir/app python script.py
This will have the added benefit of allowing you to stop the container, make changes to the file, and start the container and see the change reflected within the container.
so you should add to your Dockerfile a line
or something similar,
What is the difference between CMD and ENTRYPOINT in a Dockerfile?
read the docs about