Tools, FAQ, Tutorials:
Use "ENV" Instruction on Windows Image
How to use "ENV" Instruction in Dockerfile for Windows images?
✍: FYIcenter.com
In a Linux environment, the "ENV" instruction does two things
in the image build process:
However, the "ENV" instruction seems not able to provide local variables. But it does inserting an environment variable to the Windows image.
1. Enter the following Dockerfile, JavaImage, to try the "ENV" instruction:
C:\fyicenter> type JavaImage FROM openjdk ENV CLASSPATH="C:\\FYI Center" RUN ["PowerShell", "Get-ChildItem", "Env:CLASSPATH"] # RUN ["PowerShell", "mkdir", $CLASSPATH] RUN ["PowerShell", "mkdir", "\"C:\\FYI Center\""] COPY ["Hello.java", "C:/FYI Center/Hello.java"] RUN ["javac", "C:\\FYI Center\\Hello.java"] ENTRYPOINT ["java", "Hello"]
2. Build the image and run it:
C:\fyicenter> docker build --file JavaImage --tag myjava . Sending build context to Docker daemon 12.87MB Step 1/7 : FROM openjdk Step 2/7 : ENV CLASSPATH="C:\\FYI Center" Step 3/7 : RUN ["PowerShell", "Get-ChildItem", "Env:CLASSPATH"] Name Value ---- ----- CLASSPATH C:\FYI Center Step 4/7 : RUN ["PowerShell", "mkdir", "\"C:\\FYI Center\""] Mode Length Name ---- ------ ---- d----- FYI Center Step 5/7 : COPY ["Hello.java", "C:/FYI Center/Hello.java"] Step 6/7 : RUN ["javac", "C:\\FYI Center\\Hello.java"] Step 7/7 : ENTRYPOINT ["java", "Hello"] Successfully built 110a378f5d8a Successfully tagged myjava:latest C:\fyicenter> docker run --name myjava myjava Hello world! C:\fyicenter> docker rm myjava C:\fyicenter> docker image rm myjava
Ok, we are able to use "ENV" instruction to insert an environment variable to the Windows image.
⇒ Docker Container Platform - Tutorials
⇐ "shell" Format vs. "exec" Format
2021-11-30, 433👍, 0💬
Popular Posts:
How to view API details on the Publisher Dashboard of an Azure API Management Service? You can follo...
How To Get the Minimum or Maximum Value of an Array in PHP? If you want to get the minimum or maximu...
How to convert JSON Objects to PHP Associative Arrays using the json_decode() function? Actually, JS...
How to create a new API on the Publisher Portal 2017 version of an Azure API Management Service? If ...
How to use "xsl-transform" Azure API Policy Statement? The "xsl-transform" Policy Statement allows y...