|
2 | 2 | --- |
3 | 3 | - name: "StackHead::Container || Build src folder list || Project: {{ project_name }}" |
4 | 4 | block: |
| 5 | + - name: "Container hooks location" |
| 6 | + set_fact: |
| 7 | + managedContainerFolders: ["{{ stackhead__containerhooks_location }}"] |
5 | 8 | - name: "Collect local volumes" |
6 | 9 | set_fact: |
7 | | - managedContainerVolumePaths: "{{ managedContainerVolumePaths|default([]) + [ ''~ stackhead__containerdata_location_services|format(item.0.name, item.1.src|default()) ~'' ] }}" |
| 10 | + managedContainerFolders: "{{ managedContainerFolders|default([]) + [ ''~ stackhead__containerdata_location_services|format(item.0.name, item.1.src|default()) ~'' ] }}" |
8 | 11 | when: item.1.type == 'local' |
9 | 12 | with_subelements: |
10 | 13 | - "{{ app_config.container.services }}" |
|
13 | 16 | skip_missing: True |
14 | 17 | - name: "Collect global volumes" |
15 | 18 | set_fact: |
16 | | - managedContainerVolumePaths: "{{ managedContainerVolumePaths|default([]) + [ '' ~ stackhead__containerdata_location_global|format(item.1.src|default()) ~ '' ] }}" |
| 19 | + managedContainerFolders: "{{ managedContainerFolders|default([]) + [ '' ~ stackhead__containerdata_location_global|format(item.1.src|default()) ~ '' ] }}" |
17 | 20 | when: item.1.type == 'global' |
18 | 21 | with_subelements: |
19 | 22 | - "{{ app_config.container.services }}" |
|
22 | 25 | skip_missing: True |
23 | 26 | - name: "Collect custom volumes" |
24 | 27 | set_fact: |
25 | | - managedContainerVolumePaths: "{{ managedContainerVolumePaths|default([]) + [ '' ~ item.1.src ~ '' ] }}" |
| 28 | + managedContainerFolders: "{{ managedContainerFolders|default([]) + [ '' ~ item.1.src ~ '' ] }}" |
26 | 29 | when: item.1.type == 'custom' |
27 | 30 | with_subelements: |
28 | 31 | - "{{ app_config.container.services }}" |
29 | 32 | - volumes |
30 | 33 | - flags: |
31 | 34 | skip_missing: True |
32 | 35 | - block: |
33 | | - - name: "StackHead::Container || Checking volume folders" |
| 36 | + - name: "StackHead::Container || Checking project Docker folders" |
34 | 37 | stat: |
35 | 38 | path: "{{ item }}" |
36 | 39 | register: folder_stats |
37 | | - with_items: "{{ managedContainerVolumePaths }}" |
38 | | - - name: "StackHead::Container || Creating missing volume folders" |
| 40 | + with_items: "{{ managedContainerFolders }}" |
| 41 | + - name: "StackHead::Container || Creating missing project Docker folders" |
39 | 42 | file: |
40 | 43 | path: "{{ item.item }}" |
41 | 44 | state: directory |
42 | 45 | mode: 0755 |
43 | 46 | when: item.stat.exists == false |
44 | 47 | with_items: "{{ folder_stats.results }}" |
45 | | - when: managedContainerVolumePaths is defined |
| 48 | + when: managedContainerFolders is defined |
| 49 | +- name: remove old hook files |
| 50 | + raw: "rm -rf {{ stackhead__containerhooks_location }}/*" |
| 51 | +- block: |
| 52 | + - set_fact: |
| 53 | + collected_hooks: "{{ collected_hooks|default([]) + [{ 'src': item.hooks.execute_after_setup, 'prefix': 'afterSetup' }] }}" |
| 54 | + when: item.hooks.execute_after_setup is defined |
| 55 | + with_items: "{{ app_config.container.services }}" |
| 56 | + - set_fact: |
| 57 | + collected_hooks: "{{ collected_hooks|default([]) + [{ 'src': item.hooks.execute_before_destroy, 'prefix': 'beforeDestroy' }] }}" |
| 58 | + when: item.hooks.execute_before_destroy is defined |
| 59 | + with_items: "{{ app_config.container.services }}" |
| 60 | +- name: Copy hook files |
| 61 | + synchronize: |
| 62 | + src: "{{ stackhead__local_config_file|dirname }}/{{ item.src }}" |
| 63 | + dest: "{{ stackhead__containerhooks_location }}/{{ item.prefix}}_{{ item.src|basename }}" |
| 64 | + perms: false |
| 65 | + rsync_opts: |
| 66 | + - "--chmod=F755" |
| 67 | + with_items: "{{ collected_hooks|default([]) }}" |
46 | 68 | - name: "StackHead::Container || Generate Terraform Docker configuration file | Project: {{ project_name }}" |
47 | 69 | include_tasks: "{{ module_role_path | default(role_path) }}/tasks/docker_steps/generate-docker-tf.yml" |
0 commit comments