
ACR builder
Build
Run docker build --rm -t acr-builder .. Note that acr-builder is intended to be used as a docker image.
Example
This project can be built using acr-builder itself, assuming you have a valid acr-builder image named acr-builder. Running ./scripts/run-build.sh will rebuild the acr-docker image as acr-builder.
Note that the file ./scripts/run-build.sh is a convenience script and can be run on its own. You should be able to run it on its own.
Assuming you have the following:
- ACR builder image named
acr-builder
- Your project has a
Dockerfile on its base directory
- You are currently authenticated to a target registry named
<registry>
Run the following on your project directory to build the project and push to a desired registry:
./run-build.sh --working-dir <source-dir> --push --docker-registry <registry>
Required Parameters
Conditional or Optional parameters
--docker-registry The docker registry to push to. This parameter will populate the ACR_BUILD_DOCKER_REGISTRY reserved environment variable (see Build Environment). Registry is required if the --push option is present.
--docker-user The username for the docker registry specified above.
--docker-password The password or token for registry specified above.
-f Dockerfile to be used for building. If specified, the argument value can be a full path or a relative path to the source repository root. Otherwise, Dockerfile will be used.
-t Image name to build to. It must be used alongside --dockerfile if push is required. Registry URL must be excluded from the image name parameter.
-c Docker build context
--docker-build-arg Build arguments to be passed to docker build. This parameter can be specified multiple times.
--docker-secret-build-arg Build arguments to be passed to docker build. The argument value contains a secret which will be hidden from the log. This parameter can be specified multiple times.
--build-env Custom environment variables defined for the build process. This parameter can be specified multiple times. (For more details, see Build Environment).
--push Specify if push is required if build is successful.
--pull Attempt to pull a newer version of the base images if it's already cached locally.
--no-cache Not using any cached layer when building the image.
--verbose Enable verbose output for debugging.
Build Environment
You can set an environment variable with --build-env <VAR_NAME>=<VAR_VALUE> and the builder will be aware of an environment variable throughout the build (the same goes for all child processes). ACR builder has a set of reserved environment variables such as ACR_BUILD_DOCKER_REGISTRY mentioned in the parameters paragraph. You can set them by passing in the optional parameter --docker-registry and they can't be overridden with --build-env.
Furthermore, ACR builder also populates the following variables during build so the child process can make use of these values:
ACR_BUILD_TIMESTAMP Timestamp of where the build start in ISO format.
ACR_BUILD_PUSH_IMAGES Indicates whether or not the current build will push on success.