-
Type:
Bug
-
Resolution: Fixed
-
Priority:
Major
-
Component/s: pipeline-model-definition-plugin
-
None
I've got a multi-branch declarative pipeline build job that usesĀ
agent { dockerfile true }
to set up a container for the build.Ā MultipleĀ branches have an identical Dockerfile, but building an image produces different results, as the result also depends on other files in the repository.
We recently had a job that failed due to two branches building in parallel; after much head scratching we realised the same tag had been applied toĀ both of the two docker images built, so one of the branchesĀ ended up being built inside a container based on the other branch's image.Ā Digging in to the code, I can see that the image tag is currently based on the hash of the Dockerfile - I think this is flawed, as identical Dockerfiles do not necessarily produce the same output.
I can think of two other options:
- Use a tag based on the (full) job name
- Use a randomly generated tag
I believe Docker is already pretty clever about re-using cached intermediate images, so I don't think these changes will have a significant impact on subsequent image build times, even if a random tag is used.
- links to