The Docker image (Windows-based) includes an application directory at C:\App
. Inside that directory reside several sub-folders and files, including a batch file called process.bat
. The Dockerfile (used to build the image) ends like this:
ENTRYPOINT [ "C:\\App\\process.bat" ]
When I instantiate this image using the command: docker run company/app
, the batch file runs, but it fails at the point where other files under C:\App
are referenced. Essentially, the working directory is still C:\
from the Docker container's entry-point.
Is there a way to set the working directory within the Dockerfile? Couple of alternatives do exist:
- Add
-w C:\App
to the docker run - In the batch file, I can add a line at the beginning
cd /D C:\App
But is there a way to specify the working directory in the Dockerfile?
If
/App
is a mounted volume then you should specifyVOLUME /App
beforeWORKDIR
to use it withENTRYPOINT
, otherwise it does not be seen byENTRYPOINT
:Which
start.sh
is within/App
directory.WORKDIR /App
is a command you can use in your dockerfile to change the working directory.