Added logic to start docker compose pull just once per directory

This commit is contained in:
Kevin Veen-Birkenbach 2025-08-20 07:02:27 +02:00
parent 594d9417d1
commit ec07d1a20b
No known key found for this signature in database
GPG Key ID: 44D8F11FD62F878E
3 changed files with 14 additions and 8 deletions

View File

@ -1,8 +1,9 @@
# Path Variables for Key Directories and Scripts # Path Variables for Key Directories and Scripts
PATH_ADMINISTRATOR_HOME: "/home/administrator/" PATH_ADMINISTRATOR_HOME: "/home/administrator/"
PATH_ADMINISTRATOR_SCRIPTS: "/opt/scripts/" PATH_ADMINISTRATOR_SCRIPTS: "/opt/scripts/"
PATH_SYSTEMCTL_SCRIPTS: "{{ [ PATH_ADMINISTRATOR_SCRIPTS, 'systemctl' ] | path_join }}" PATH_SYSTEMCTL_SCRIPTS: "{{ [ PATH_ADMINISTRATOR_SCRIPTS, 'systemctl' ] | path_join }}"
PATH_DOCKER_COMPOSE_INSTANCES: "/opt/docker/" PATH_DOCKER_COMPOSE_INSTANCES: "/opt/docker/"
PATH_SYSTEM_LOCK_SCRIPT: "/opt/scripts/sys-lock.py" PATH_SYSTEM_LOCK_SCRIPT: "/opt/scripts/sys-lock.py"
PATH_SYSTEM_SERVICE_DIR: "/etc/systemd/system" PATH_SYSTEM_SERVICE_DIR: "/etc/systemd/system"
PATH_DOCKER_COMPOSE_PULL_LOCK_DIR: "/run/ansible/compose-pull/"

View File

@ -14,7 +14,7 @@
- name: docker compose pull - name: docker compose pull
shell: | shell: |
set -euo pipefail 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 if [ ! -e "$lock" ]; then
mkdir -p "$(dirname "$lock")" mkdir -p "$(dirname "$lock")"
docker compose pull docker compose pull
@ -29,7 +29,7 @@
environment: environment:
COMPOSE_HTTP_TIMEOUT: 600 COMPOSE_HTTP_TIMEOUT: 600
DOCKER_CLIENT_TIMEOUT: 600 DOCKER_CLIENT_TIMEOUT: 600
when: (MODE_UPDATE | bool when: MODE_UPDATE | bool
listen: listen:
- docker compose up - docker compose up
- docker compose restart - docker compose restart

View File

@ -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" - name: "Load docker container role"
include_role: include_role:
name: docker-container name: docker-container