forked from CCCHH/ansible-infra
docker_compose(role): add support for deploying optional .env file
This is needed for situations, where one wants to use a vendor-provided compose file and configure it using environment variables. Like for example: https://github.com/zammad/zammad-docker-compose
This commit is contained in:
parent
839a9b2c0a
commit
3840553f9d
3 changed files with 19 additions and 2 deletions
|
|
@ -1,8 +1,8 @@
|
||||||
# Role `docker_compose`
|
# Role `docker_compose`
|
||||||
|
|
||||||
A role for deploying a Docker-Compose-based application.
|
A role for deploying a Docker-Compose-based application.
|
||||||
It deploys the given Compose file as well as configuration files to the specified hosts and makes sure all services are up-to-date and running.
|
It deploys the given Compose file, an optional `.env` file, as well as configuration files to the specified hosts and makes sure all services are up-to-date and running.
|
||||||
The Compose file gets deployed to `/ansible_docker_compose/compose.yaml` and the configuration files get deployed into the `/ansible_docker_compose/configs/` directory.
|
The Compose file gets deployed to `/ansible_docker_compose/compose.yaml`, the `.env` file to `/ansible_docker_compose/.env` and the configuration files get deployed into the `/ansible_docker_compose/configs/` directory.
|
||||||
A use case for the deployment of the additional configuration files is Composes top-level element `configs` in conjunction with the `configs` option for services.
|
A use case for the deployment of the additional configuration files is Composes top-level element `configs` in conjunction with the `configs` option for services.
|
||||||
|
|
||||||
## Supported Distributions
|
## Supported Distributions
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,12 @@ argument_specs:
|
||||||
`/ansible_docker_compose/compose.yaml`.
|
`/ansible_docker_compose/compose.yaml`.
|
||||||
type: str
|
type: str
|
||||||
required: true
|
required: true
|
||||||
|
docker_compose__env_file_content:
|
||||||
|
description: >-
|
||||||
|
The content of the .env file at
|
||||||
|
`/ansible_docker_compose/.env`.
|
||||||
|
type: str
|
||||||
|
required: false
|
||||||
docker_compose__configuration_files:
|
docker_compose__configuration_files:
|
||||||
description: >-
|
description: >-
|
||||||
A list of configuration files to be deployed in the
|
A list of configuration files to be deployed in the
|
||||||
|
|
|
||||||
|
|
@ -17,6 +17,17 @@
|
||||||
become: true
|
become: true
|
||||||
notify: docker compose down
|
notify: docker compose down
|
||||||
|
|
||||||
|
- name: deploy the .env file
|
||||||
|
ansible.builtin.copy:
|
||||||
|
content: "{{ docker_compose__env_file_content }}"
|
||||||
|
dest: /ansible_docker_compose/.env
|
||||||
|
mode: "0644"
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
become: true
|
||||||
|
when: docker_compose__env_file_content is defined
|
||||||
|
notify: docker compose down
|
||||||
|
|
||||||
- name: make sure the `/ansible_docker_compose/configs` directory exists
|
- name: make sure the `/ansible_docker_compose/configs` directory exists
|
||||||
ansible.builtin.file:
|
ansible.builtin.file:
|
||||||
path: /ansible_docker_compose/configs
|
path: /ansible_docker_compose/configs
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue