container: reorganize volume directory creation

This commit is contained in:
uumas
2023-04-21 05:09:14 +03:00
parent f845962ed9
commit 20e38332e6
3 changed files with 36 additions and 20 deletions

View File

@@ -8,12 +8,25 @@
final_docker_volumes: "{{ docker_volumes }}"
container_image: ''
- name: Set assistive variables
set_fact:
template_mounts_needed: "{{ docker_mounts | selectattr('template', 'defined') | list | length > 0 }}"
volumes_needed: "{{ docker_mounts | selectattr('name', 'defined') | list | length > 0 }}"
dockerfile_needed: "{{ dockerfile is defined and dockerfile | length > 0 }}"
- name: Set more assistive variables
set_fact:
bind_volumes_needed: "{{ volumes_needed and docker_volume_type == 'bind' }}"
named_volumes_needed: "{{ volumes_needed and docker_volume_type == 'named' }}"
- name: Set even more assistive variables
set_fact:
create_opt_directory: "{{ dockerfile_needed or docker_host_user or bind_volumes_needed or template_mounts_needed }}"
create_mounts_directory: "{{ bind_volumes_needed or template_mounts_needed }}"
- name: Set docker service full name
set_fact:
docker_service_name: "{{ docker_service }}_{{ docker_service_suffix }}"
when: docker_service_suffix is defined
- name: Warn about docker_volumes legacy format
debug:
msg: "docker_volumes is deprecated. This support may be removed after december 2022. Use docker_mounts instead!"

View File

@@ -46,7 +46,7 @@
path: "/opt/{{ docker_service }}"
state: directory
mode: 0755
when: (dockerfile is defined and dockerfile | length > 0) or docker_host_user or docker_volume_type == 'bind'
when: create_opt_directory
- name: Container image
import_tasks: image.yml
@@ -55,6 +55,25 @@
include_tasks: host_user.yml
when: docker_host_user
- name: Create suffix directory
when: create_opt_directory and docker_service_suffix is defined
block:
- name: Create directory /opt/{{ docker_service + '/' + docker_service_suffix }}
file:
path: "/opt/{{ docker_service }}/{{ docker_service_suffix }}"
state: directory
owner: "{{ user.uid | default(omit) }}"
group: "{{ user.group | default(omit) }}"
mode: 0755
- name: Set container_workdir variable
set_fact:
container_workdir: /opt/{{ docker_service }}/{{ docker_service_suffix }}
- name: Set container_workdir variable
set_fact:
container_workdir: /opt/{{ docker_service }}
when: docker_service_suffix is not defined
- name: Container volumes
import_tasks: volumes.yml

View File

@@ -1,27 +1,11 @@
---
- name: Create directories and put files in them
when:
- docker_mounts | length > 0
- (docker_volume_type == 'bind' and docker_mounts | selectattr('name', 'defined') | list | length > 0) or (docker_mounts | selectattr('template', 'defined') | list | length > 0)
when: create_mounts_directory
block:
- name: Create directory /opt/{{ docker_service + '/' + docker_service_suffix }}
file:
path: "/opt/{{ docker_service }}/{{ docker_service_suffix }}"
state: directory
owner: "{{ user.uid | default(omit) }}"
group: "{{ user.group | default(omit) }}"
mode: 0755
when: docker_service_suffix is defined
- name: Set docker_mounts_dir
set_fact:
docker_mounts_dir: "/opt/{{ docker_service }}/{{ docker_service_suffix }}/mounts"
when: docker_service_suffix is defined
- name: Set docker_mounts_dir
set_fact:
docker_mounts_dir: "/opt/{{ docker_service }}/mounts"
when: docker_service_suffix is not defined
docker_mounts_dir: "{{ container_workdir }}/mounts"
- name: Create directory {{ docker_mounts_dir }}
file: