Add 'entrypoint' parameter to Docker module
This commit is contained in:
parent
e96549c95d
commit
cee7e928fc
1 changed files with 33 additions and 1 deletions
|
@ -46,6 +46,14 @@ options:
|
|||
default: missing
|
||||
choices: [ "missing", "always" ]
|
||||
version_added: "1.9"
|
||||
entrypoint:
|
||||
description:
|
||||
- Corresponds to ``--entrypoint`` option of ``docker run`` command and
|
||||
``ENTRYPOINT`` directive of Dockerfile.
|
||||
Used to match and launch containers.
|
||||
default: null
|
||||
required: false
|
||||
version_added: "2.0"
|
||||
command:
|
||||
description:
|
||||
- Command used to match and launch containers.
|
||||
|
@ -1043,6 +1051,21 @@ class DockerManager(object):
|
|||
differing.append(container)
|
||||
continue
|
||||
|
||||
# ENTRYPOINT
|
||||
|
||||
expected_entrypoint = self.module.params.get('entrypoint')
|
||||
if expected_entrypoint:
|
||||
expected_entrypoint = shlex.split(expected_entrypoint)
|
||||
actual_entrypoint = container["Config"]["Entrypoint"]
|
||||
|
||||
if actual_entrypoint != expected_entrypoint:
|
||||
self.reload_reasons.append(
|
||||
'entrypoint ({0} => {1})'
|
||||
.format(actual_entrypoint, expected_entrypoint)
|
||||
)
|
||||
differing.append(container)
|
||||
continue
|
||||
|
||||
# COMMAND
|
||||
|
||||
expected_command = self.module.params.get('command')
|
||||
|
@ -1313,6 +1336,9 @@ class DockerManager(object):
|
|||
Return any matching containers that are already present.
|
||||
"""
|
||||
|
||||
entrypoint = self.module.params.get('entrypoint')
|
||||
if entrypoint is not None:
|
||||
entrypoint = shlex.split(entrypoint)
|
||||
command = self.module.params.get('command')
|
||||
if command is not None:
|
||||
command = shlex.split(command)
|
||||
|
@ -1346,8 +1372,12 @@ class DockerManager(object):
|
|||
image_matches = running_image in repo_tags
|
||||
|
||||
command_matches = command == details['Config']['Cmd']
|
||||
entrypoint_matches = (
|
||||
entrypoint == details['Config']['Entrypoint']
|
||||
)
|
||||
|
||||
matches = image_matches and command_matches
|
||||
matches = (image_matches and command_matches and
|
||||
entrypoint_matches)
|
||||
|
||||
if matches:
|
||||
if not details:
|
||||
|
@ -1407,6 +1437,7 @@ class DockerManager(object):
|
|||
api_version = self.client.version()['ApiVersion']
|
||||
|
||||
params = {'image': self.module.params.get('image'),
|
||||
'entrypoint': self.module.params.get('entrypoint'),
|
||||
'command': self.module.params.get('command'),
|
||||
'ports': self.exposed_ports,
|
||||
'volumes': self.volumes,
|
||||
|
@ -1619,6 +1650,7 @@ def main():
|
|||
count = dict(default=1),
|
||||
image = dict(required=True),
|
||||
pull = dict(required=False, default='missing', choices=['missing', 'always']),
|
||||
entrypoint = dict(required=False, default=None, type='str'),
|
||||
command = dict(required=False, default=None),
|
||||
expose = dict(required=False, default=None, type='list'),
|
||||
ports = dict(required=False, default=None, type='list'),
|
||||
|
|
Loading…
Reference in a new issue