Bamboo version 6.4.0 build 60404 - 17 Feb 18
I am having trouble understanding how the Docker Runner is supposed to work: namely, how is it supposed to get the image that it uses?
I can create an earlier stage with a job having a Docker pull task that runs in the agent environment, but I have no guarantee that it will run on the same agent/host.
Likewise, I can create a job in the same stage with the Docker pull task, but that could also run in parallel and/or on another host.
I tried adding a Docker pull task to a job that runs in Docker Runner, thinking that maybe this would be a bit of awkward magic that would run the pull in the agent environment and then run the other tasks in the Docker Runner.
The best I can figure out is that this feature is intended to be used where a local set of images will be downloaded & maintained by the Bamboo/system admins, outside of Bamboo itself.
As stated in the official documentation, "Docker runner is meant to run builds and deployments in a Docker container to isolate the build process from the environment it runs in." So, basically, Bamboo requires that the image you've set in the task configuration is available locally (agent's environment) or it can be downloaded from the default docker registry.
If you want to ensure that the task will use the latest image, you'll need to push it before the job starts its execution, I would say that the best approach would be to create a "master" plan to build and push the docker image and a "child" or dependent plan to build the project itself.