I have below Dockerfile:
FROM python:3
RUN mkdir -p /test/code/
RUN mkdir -p /test/logs/
RUN mkdir -p /test/configs/
ADD test.py /test/code/
ADD test_outpu
This doesn't work because test_input.txt
is not in the docker build context.
When you execute the command sudo docker build -t myimage .
the last '.' indicates the build context. What docker does is that it uploads the context to the docker deamon to build the image. In your case the context does not contain test_input.txt
, thus it is not uploaded and docker can't find the file/
There are two ways to solve this:
sudo docker build -t myimage -f code/Dockerfile .
. In this case the context includes all the test directory. Then modify the Dockerfile to account for this change:FROM python:3
...
ADD code/test.py /test/code/
ADD code/test_output.txt /test/code/
ADD config/test_input.txt /test/configs/
ADD logs/logfile.log /test/logs/
sudo docker build -t myimage .
should work.