Hi all!
I’ve found, that if run such command:
- docker: image=registry state=running
And then:
- docker: image=registry state=running`` env=``"SOMEVAR=1"
The module will return “ok”, not “changed” and docker container will not be relaunched with new parameters.
At first sight it may seem like this problem can be easily resolved by introducing some check in the module.
But if we think better we will find at least two problems:
What the module should do with a container that was launched with old parameters?
docker run registry -e "SOMEVAR=1"
is a different call from justdocker run registry
, but the only way to inspect what environment variables in a container (AFAIK) isdocker inspect -f "{{ .Config.Env }}" our_container
and there will be some default environment variables asHOME
. And also we need to ensure that there is no stale user-defined environment variables. So I don’t see any straight-forward ways to check if a container was launched with exact environment variables as defined in current version of playbook.
I want to discuss, what is the best way to make this module operate fully in idempotent fashion.