Dockerfiles have been able to use
ARGs to allow passing in parameters during a
docker build using the CLI argument
--build-arg for some time. But until recently (Docker's 17.05 release, to be precise), you weren't able to use an
ARG to specify all or part of your
But since the pull request Allow ARG in FROM was merged, you can now specify an image / repository to use at runtime. This is great for flexibility, and as a concrete example, I used this feature to allow me to pull from a private Docker registry when building a Dockerfile in production, or to build from a local Docker image that was created as part of a CI/testing process inside Travis CI.
To use an
ARG in your
Then if you want to use a different image/tag, you can provide it at runtime:
docker build -t container_tag --build-arg MYAPP_IMAGE=localimage:latest .
If you don't specify
--build-arg, then Docker will use the default value in the
Typically, it's preferred that you set the
FROM value in the Dockerfile itself—but there are many situations (e.g. CI testing) where you can justify making it a runtime argument.