From 9ed4e33a7d45e64a5d483d60f40fabf92657bac1 Mon Sep 17 00:00:00 2001 From: Quentin Duchemin Date: Sun, 17 Oct 2021 13:34:06 +0200 Subject: [PATCH] [FW] Use Compose module rather than shell for importing music This is because for no reason, the shell module will just hang, never launching the container. This is also a bit cleaner... --- roles/music/tasks/import_music.yml | 18 ++++++++++++++++-- roles/music/tasks/main.yml | 1 + roles/music/templates/import.yml.j2 | 16 ++++++++++++++++ 3 files changed, 33 insertions(+), 2 deletions(-) create mode 100644 roles/music/templates/import.yml.j2 diff --git a/roles/music/tasks/import_music.yml b/roles/music/tasks/import_music.yml index 4b20946..4723dcf 100644 --- a/roles/music/tasks/import_music.yml +++ b/roles/music/tasks/import_music.yml @@ -25,11 +25,25 @@ - name: Import music into Funkwhale shell: - # funkwhale_import_music_directory is the mounted version of tagged - # files at previous step + cmd: "docker-compose run --rm api python manage.py import_files {{ funkwhale_import_library_id }} {{ funkwhale_import_music_directory }} --recursive --noinput --prune" chdir: "{{ funkwhale_folder_name }}" +- name: Run funkwhale import container + community.docker.docker_compose: + project_src: "{{ funkwhale_folder_name }}" + files: ["import.yml"] + remove_orphans: yes + pull: yes + recreate: smart + state: present + +- name: Remove funkwhale import container + community.docker.docker_compose: + project_src: "{{ funkwhale_folder_name }}" + files: ["import.yml"] + state: absent + - name: Delete files once imported shell: cmd: "rm -rf {{ funkwhale_import_music_directory_host }}/*" diff --git a/roles/music/tasks/main.yml b/roles/music/tasks/main.yml index 3d38385..18779af 100644 --- a/roles/music/tasks/main.yml +++ b/roles/music/tasks/main.yml @@ -41,6 +41,7 @@ mode: 0644 loop: - docker-compose.yml.j2 + - import.yml.j2 - conf.env.j2 - nginx.conf.j2 diff --git a/roles/music/templates/import.yml.j2 b/roles/music/templates/import.yml.j2 new file mode 100644 index 0000000..034b2a8 --- /dev/null +++ b/roles/music/templates/import.yml.j2 @@ -0,0 +1,16 @@ +version: "{{ compose_version }}" + +services: + api: + image: "funkwhale/funkwhale:{{ funkwhale_version }}" + container_name: funkwhale_import + env_file: + - ./conf.env + volumes: + - "{{ funkwhale_import_music_directory_host }}:{{ funkwhale_import_music_directory }}:ro" + - "static:{{ funkwhale_static_root }}" + - "frontend:{{ funkwhale_frontend }}" + - /etc/timezone:/etc/timezone:ro + - /etc/localtime:/etc/localtime:ro + command: ["python", "manage.py", "import_files", "{{ funkwhale_import_library_id }}", "{{ funkwhale_import_music_directory }}", "--recursive", "--noinput", "--prune"] + restart: no