--- - name: Create directories and put files in them when: create_mounts_directory block: - name: Define mount directory owner set_fact: mount_owner: "{{ user.uid if docker_host_user else image_user | default('') }}" mount_group: "{{ user.group if docker_host_user else '' }}" - name: "Create docker bind mount directories for {{ docker_service_name }}" file: path: "{{ docker_mounts_dir }}/{{ item.name }}" state: directory owner: "{{ mount_owner if (item.set_owner is not defined or item.set_owner) and mount_owner | length > 0 else omit }}" group: "{{ mount_group if (item.set_group is not defined or item.set_group) and mount_group | length > 0 else omit }}" when: item.name is defined loop: "{{ docker_mounts }}" - name: Set docker_volume_definition for named binds set_fact: docker_volume_definition: "{{ docker_volume_definition + [{'source': docker_mounts_dir + '/' + item.name, 'target': item.path, 'type': 'bind'}] }}" when: item.name is defined loop: "{{ docker_mounts }}" - name: Template docker template mounts for {{ docker_service_name }} template: src: "{{ item.template }}.j2" dest: "{{ docker_mounts_dir }}/{{ item.template }}" when: item.template is defined loop: "{{ docker_mounts }}" notify: Restart container {{ docker_service_name }} - name: Set docker_volume_definition for template mounts set_fact: docker_volume_definition: "{{ docker_volume_definition + [{'source': docker_mounts_dir + '/' + item.template, 'target': item.path, 'type': 'bind', 'read_only': true}] }}" when: item.template is defined loop: "{{ docker_mounts }}" - name: Set docker_volume_definition for named volumes set_fact: docker_volume_definition: "{{ docker_volume_definition + [{'source': docker_service_name + '_' + item.name, 'target': item.path, 'type': 'volume'}] }}" when: docker_volume_type == 'named' and item.name is defined loop: "{{ docker_mounts }}" - name: Set docker_volume_definition for src binds set_fact: docker_volume_definition: "{{ docker_volume_definition + [{'source': item.src, 'target': item.path, 'type': 'bind'}] }}" when: item.src is defined loop: "{{ docker_mounts }}"