Add check_files_existing option. (#839)
This commit is contained in:
parent
6368854a8c
commit
8bcc3519d4
|
@ -0,0 +1,6 @@
|
|||
minor_changes:
|
||||
- "docker_compose_v2* - the new option ``check_files_existing`` allows to disable the check for one of the files
|
||||
``compose.yaml``, ``compose.yml``, ``docker-compose.yaml``, and ``docker-compose.yml`` in ``project_src``
|
||||
if ``files`` is not specified. This is necessary if a non-standard compose filename is specified through other
|
||||
means, like the ``COMPOSE_FILE`` environment variable
|
||||
(https://github.com/ansible-collections/community.docker/issues/838, https://github.com/ansible-collections/community.docker/pull/839)."
|
|
@ -55,6 +55,17 @@ options:
|
|||
- Equivalent to C(docker compose --profile).
|
||||
type: list
|
||||
elements: str
|
||||
check_files_existing:
|
||||
description:
|
||||
- If set to V(false), the module will not check whether one of the files
|
||||
C(compose.yaml), C(compose.yml), C(docker-compose.yaml), or C(docker-compose.yml)
|
||||
exists in O(project_src) if O(files) is not provided.
|
||||
- This can be useful if environment files with C(COMPOSE_FILE) are used to configure a different
|
||||
filename. The module currently does not check for C(COMPOSE_FILE) in environment files or the
|
||||
current environment.
|
||||
type: bool
|
||||
default: true
|
||||
version_added: 3.9.0
|
||||
requirements:
|
||||
- "PyYAML if O(definition) is used"
|
||||
notes:
|
||||
|
|
|
@ -507,6 +507,7 @@ def common_compose_argspec():
|
|||
definition=dict(type='dict'),
|
||||
env_files=dict(type='list', elements='path'),
|
||||
profiles=dict(type='list', elements='str'),
|
||||
check_files_existing=dict(type='bool', default=True),
|
||||
)
|
||||
|
||||
|
||||
|
@ -584,12 +585,13 @@ class BaseComposeManager(DockerBaseClass):
|
|||
if not os.path.isdir(self.project_src):
|
||||
self.fail('"{0}" is not a directory'.format(self.project_src))
|
||||
|
||||
self.check_files_existing = parameters['check_files_existing']
|
||||
if self.files:
|
||||
for file in self.files:
|
||||
path = os.path.join(self.project_src, file)
|
||||
if not os.path.exists(path):
|
||||
self.fail('Cannot find Compose file "{0}" relative to project directory "{1}"'.format(file, self.project_src))
|
||||
elif all(not os.path.exists(os.path.join(self.project_src, f)) for f in DOCKER_COMPOSE_FILES):
|
||||
elif self.check_files_existing and all(not os.path.exists(os.path.join(self.project_src, f)) for f in DOCKER_COMPOSE_FILES):
|
||||
filenames = ', '.join(DOCKER_COMPOSE_FILES[:-1])
|
||||
self.fail('"{0}" does not contain {1}, or {2}'.format(self.project_src, filenames, DOCKER_COMPOSE_FILES[-1]))
|
||||
|
||||
|
|
Loading…
Reference in New Issue