dockerdockerfiledocker-builddocker-entrypointdocker-run

Pass ARG to ENTRYPOINT


Say I have this in a Dockerfile:

ARG FOO=1
ENTRYPOINT ["docker.r2g", "run"]

where I build the above with:

docker build -t "$tag" --build-arg FOO="$(date +%s)" .

is there a way to do something like:

ENTRYPOINT ["docker.r2g", "run", ARG FOO]  // something like this

I guess the argument could also be passed with docker run instead of during the docker build phase?


Solution

  • You could combine ARG and ENV in your Dockerfile, as I mention in "ARG or ENV, which one to use in this case?"

    ARG FOO
    ENV FOO=${FOO}
    

    That way, you docker.r2g can access the ${FOO} environment variable.

    I guess the argument could also be passed with docker run instead of during the docker build phase?

    That is also possible, if it makes more sense to give FOO a value at runtime:

    docker run -e FOO=$(...) ...