--- - 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 }}" 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 }}" mode: "{{ item.mode | default('0755') }}" when: item.name is defined and docker_volume_type == 'bind' loop: "{{ docker_mounts }}" - name: Set docker_mount_definition for named binds set_fact: docker_mount_definition: "{{ docker_mount_definition + [{'source': docker_mounts_dir + '/' + item.name, 'target': item.path, 'type': 'bind', 'read_only': item.readonly | default(false)}] }}" when: item.name is defined and docker_volume_type == 'bind' loop: "{{ docker_mounts }}" - name: Template docker template mounts for {{ docker_service_name }} template: src: "{{ item.template }}.j2" dest: "{{ docker_mounts_dir }}/{{ item.template }}" mode: "{{ item.mode | default('0644') }}" when: item.template is defined loop: "{{ docker_mounts }}" notify: Restart container - name: Set docker_mount_definition for template mounts set_fact: docker_mount_definition: "{{ docker_mount_definition + [{'source': docker_mounts_dir + '/' + item.template, 'target': item.path, 'type': 'bind', 'read_only': true}] }}" when: item.template is defined loop: "{{ docker_mounts }}" - name: Copy docker copypath mounts for {{ docker_service_name }} copy: src: "files/{{ item.copypath }}" dest: "{{ docker_mounts_dir }}/" directory_mode: "{{ item.mode | default('0755') }}" mode: "{{ item.mode | default('0644') }}" when: item.copypath is defined loop: "{{ docker_mounts }}" notify: Restart container - name: Set docker_mount_definition for copypath mounts set_fact: docker_mount_definition: "{{ docker_mount_definition + [{'source': docker_mounts_dir + '/' + item.copypath, 'target': item.path, 'type': 'bind', 'read_only': true}] }}" when: item.copypath is defined loop: "{{ docker_mounts }}" - name: Set docker_mount_definition for named volumes set_fact: docker_mount_definition: "{{ docker_mount_definition + [{'source': docker_namespace + ('-' + docker_service_suffix if docker_service_suffix | length > 0 else '') + '-' + item.name, 'target': item.path, 'type': 'volume', 'read_only': item.readonly | default(false)}] }}" when: docker_volume_type == 'named' and item.name is defined loop: "{{ docker_mounts }}" - name: Set docker_mount_definition for src binds set_fact: docker_mount_definition: "{{ docker_mount_definition + [{'source': item.src, 'target': item.path, 'type': 'bind', 'read_only': item.readonly | default(false)}] }}" when: item.src is defined loop: "{{ docker_mounts }}"