docker.container: Recreate container when args change #1277
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR allows the
docker.container
operation to tear down andrecreate the container when operation arguments change, instead of
reporting
No change
and doing nothing. This is intended to reduce thepossibility for human error/need for manual intervention when changing
args to
docker.container
operations.Since it is not possible to extract all operation args from e.g.
docker inspect
output, this PR takes a similar approach to Docker Compose totackle this issue - it serializes the operation args in a deterministic
way, hashes the serialized bytes, and stores this as a label on the
container. If the hash differs from a currently-running container, the
container is recreated.
Tested: Added additional tests for behavior when args are
changing/static in different scenarios