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`
 | 
			
		||||
 | 
			
		||||
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.
 | 
			
		||||
The Compose file gets deployed to `/ansible_docker_compose/compose.yaml` and the configuration files get deployed into the `/ansible_docker_compose/configs/` directory.
 | 
			
		||||
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`, 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.
 | 
			
		||||
 | 
			
		||||
## Supported Distributions
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -7,6 +7,12 @@ argument_specs:
 | 
			
		|||
          `/ansible_docker_compose/compose.yaml`.
 | 
			
		||||
        type: str
 | 
			
		||||
        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:
 | 
			
		||||
        description: >-
 | 
			
		||||
          A list of configuration files to be deployed in the
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -17,6 +17,17 @@
 | 
			
		|||
  become: true
 | 
			
		||||
  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
 | 
			
		||||
  ansible.builtin.file:
 | 
			
		||||
    path: /ansible_docker_compose/configs
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue