From ec07d1a20b6e980bb31e7c2baf8f69b5a785887a Mon Sep 17 00:00:00 2001 From: Kevin Veen-Birkenbach Date: Wed, 20 Aug 2025 07:02:27 +0200 Subject: [PATCH] Added logic to start docker compose pull just once per directory --- group_vars/all/06_paths.yml | 13 +++++++------ roles/docker-compose/handlers/main.yml | 4 ++-- roles/docker-compose/tasks/01_core.yml | 5 +++++ 3 files changed, 14 insertions(+), 8 deletions(-) diff --git a/group_vars/all/06_paths.yml b/group_vars/all/06_paths.yml index b9e33719..85a3cd9f 100644 --- a/group_vars/all/06_paths.yml +++ b/group_vars/all/06_paths.yml @@ -1,8 +1,9 @@ # Path Variables for Key Directories and Scripts -PATH_ADMINISTRATOR_HOME: "/home/administrator/" -PATH_ADMINISTRATOR_SCRIPTS: "/opt/scripts/" -PATH_SYSTEMCTL_SCRIPTS: "{{ [ PATH_ADMINISTRATOR_SCRIPTS, 'systemctl' ] | path_join }}" -PATH_DOCKER_COMPOSE_INSTANCES: "/opt/docker/" -PATH_SYSTEM_LOCK_SCRIPT: "/opt/scripts/sys-lock.py" -PATH_SYSTEM_SERVICE_DIR: "/etc/systemd/system" \ No newline at end of file +PATH_ADMINISTRATOR_HOME: "/home/administrator/" +PATH_ADMINISTRATOR_SCRIPTS: "/opt/scripts/" +PATH_SYSTEMCTL_SCRIPTS: "{{ [ PATH_ADMINISTRATOR_SCRIPTS, 'systemctl' ] | path_join }}" +PATH_DOCKER_COMPOSE_INSTANCES: "/opt/docker/" +PATH_SYSTEM_LOCK_SCRIPT: "/opt/scripts/sys-lock.py" +PATH_SYSTEM_SERVICE_DIR: "/etc/systemd/system" +PATH_DOCKER_COMPOSE_PULL_LOCK_DIR: "/run/ansible/compose-pull/" \ No newline at end of file diff --git a/roles/docker-compose/handlers/main.yml b/roles/docker-compose/handlers/main.yml index aed3ca74..ab99babb 100644 --- a/roles/docker-compose/handlers/main.yml +++ b/roles/docker-compose/handlers/main.yml @@ -14,7 +14,7 @@ - name: docker compose pull shell: | set -euo pipefail - lock="/run/ansible/compose-pull/{{ docker_compose.directories.instance | hash('sha1') }}" + lock="{{ [ PATH_DOCKER_COMPOSE_PULL_LOCK_DIR | docker_compose.directories.instance ] path_join | hash('sha1') }}" if [ ! -e "$lock" ]; then mkdir -p "$(dirname "$lock")" docker compose pull @@ -29,7 +29,7 @@ environment: COMPOSE_HTTP_TIMEOUT: 600 DOCKER_CLIENT_TIMEOUT: 600 - when: (MODE_UPDATE | bool + when: MODE_UPDATE | bool listen: - docker compose up - docker compose restart diff --git a/roles/docker-compose/tasks/01_core.yml b/roles/docker-compose/tasks/01_core.yml index 2fc6c44e..3c6ba029 100644 --- a/roles/docker-compose/tasks/01_core.yml +++ b/roles/docker-compose/tasks/01_core.yml @@ -1,3 +1,8 @@ +- name: Remove all docker compose pull locks + file: + path: "{{ PATH_DOCKER_COMPOSE_PULL_LOCK_DIR }}" + state: absent + - name: "Load docker container role" include_role: name: docker-container