I'm trying to set environment variables in docker container during the build but without success. Setting them when using run command works but I need to set them during the build.
Dockerfile
FROM ubuntu:latest
ARG TEST_ENV=something
Command I'm using to build
docker build -t --build-arg TEST_ENV="test" myimage .
Running
docker run -dit myimage
I'm checking available environment variables by using
docker exec containerid printenv
and the result is
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
HOSTNAME=e49c1abfd58b
TERM=xterm
no_proxy=*.local, 169.254/16
HOME=/root
TEST_ENV is not present
ARG
is for setting environment variables which are used during thedocker build
process - they are not present in the final image, which is why you don't see them when you usedocker run
.You use
ARG
for settings that are only relevant when the image is being built, and aren't needed by containers which you run from the image. You can useENV
for evnvironment variables to use during the build and in containers.With this Dockerfile:
You can override the build arg as you have done with
docker build -t temp --build-arg BUILD_TIME=def .
. Then you get what you expect: