Path Name Used to Build Windows Images

Q

What is the format for path names used to build Windows Docker images? Is it different than Linux path name format?

✍: FYIcenter.com

A

Yes. Path name format used to build Windows images is different from Linux images.

There are 2 general rules you have to remember when using path names in the Dockerfile to build Windows images.

1. When using path names as arguments for Windows programs, you need to use the "C:\bla\bla" Windows format.

2. When using path names as destinations of the COPY instruction, you need to use the "C:/bla/bla" Linux format.

Here is Dockerfile example, JavaImage, that uses path names:

C:\fyicenter> type JavaImage

FROM openjdk
RUN PowerShell mkdir C:\fyicenter
COPY Hello.java C:/fyicenter/Hello.java
RUN javac C:\fyicenter\Hello.java
ENTRYPOINT java -cp C:\fyicenter Hello

Build and run it.

C:\fyicenter> docker build --file JavaImage --tag myjava .
Sending build context to Docker daemon  12.88MB
Step 1/5 : FROM openjdk
 ---> fdc7d8d04bc9
Step 2/5 : RUN PowerShell mkdir C:\fyicenter
 ---> Using cache
 ---> 017ae562fd5c
Step 3/5 : COPY Hello.java C:/fyicenter/Hello.java
 ---> 71f4e71faecc
Step 4/5 : RUN javac C:\fyicenter\Hello.java
 ---> Running in d975fb266549

C:\fyicenter> docker run --name myjava myjava
Hello world!

C:\fyicenter> docker rm myjava
myjava

Ok, we are able to build our own Java Docker image with a Java program in sub-directory instead of the root directory.

For more information, see Containers on Windows Documentation.

 

Spaces in Path Name on Windows Images

Build My Java Image with "openjdk"

Building Docker Images for Windows

⇑⇑ Docker Container Platform - Tutorials

2021-11-30, 306👍, 0💬