Dexter
Dexter

Reputation: 35

Writing to a file inside a container

I have a Python script which runs a query and prints the output to a text file. When I Dockerize it the output file is not getting created. The Dockerfile is as follows:

FROM python:3
ADD cert_lamp.py /
ADD certificates.txt /
RUN pip install pyOpenSSL
RUN pip install numpy
RUN pip install cryptography
RUN pip install idna
CMD [ "python", "./cert_lamp.py" ]

cert.txt is the file where I need the output to be added. This is referenced in the script. How do I add this to the Dockerfile?

Upvotes: 2

Views: 1946

Answers (1)

aSaffary
aSaffary

Reputation: 863

you need to use VOLUME to map your docker files to your host files.

FROM python:3
ADD cert_lamp.py /
ADD certificates.txt /
RUN pip install pyOpenSSL
RUN pip install numpy
RUN pip install cryptography
RUN pip install idna
VOLUME /path/to/cert.txt
CMD [ "python", "./cert_lamp.py" ]

and when running your container:

docker run -v hostdirecotry:dockerdirectory my_image_name

P.S. docker image is created layer by layer, it's not really a good practice to write so many lines for a dockerfile. COPY your whole project directory instead of ADD-ing them one by one. and use a requirement.txt file to install the pip packages all at once.

Upvotes: 1

Related Questions