mirror of
				https://github.com/kevinveenbirkenbach/computer-playbook.git
				synced 2025-10-31 02:10:05 +00:00 
			
		
		
		
	The task 'XWIKI | Execute installer page' now uses: - timeout: 300 (allow up to 5 min per request) - retries: 20 - delay: 15 - until: condition This prevents early failures during the first Distribution Wizard bootstrap when hundreds of extensions are still being installed. Context: https://chatgpt.com/share/68ca0f18-2124-800f-a70d-df1811966107
		
			
				
	
	
		
			84 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			84 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
| ---
 | |
| - name: Validate Docker Compose configuration
 | |
|   command:
 | |
|     cmd: docker compose -f {{ docker_compose.files.docker_compose }} config --quiet
 | |
|     chdir: "{{ docker_compose.directories.instance }}"
 | |
|   register: dc_validate
 | |
|   changed_when: false
 | |
|   failed_when: dc_validate.rc != 0
 | |
|   listen:
 | |
|     - docker compose up
 | |
|     - docker compose restart
 | |
|   when: MODE_ASSERT | bool
 | |
| 
 | |
| - name: docker compose pull
 | |
|   shell: |
 | |
|     set -euo pipefail
 | |
|     lock="{{ [ PATH_DOCKER_COMPOSE_PULL_LOCK_DIR, (docker_compose.directories.instance | hash('sha1')) ~ '.lock' ] | path_join }}"
 | |
|     if [ ! -e "$lock" ]; then
 | |
|       mkdir -p "$(dirname "$lock")"
 | |
|       if docker compose config | grep -qE '^[[:space:]]+build:'; then
 | |
|         docker compose build --pull
 | |
|       fi
 | |
|       if docker compose pull --help 2>/dev/null | grep -q -- '--ignore-buildable'; then
 | |
|         docker compose pull --ignore-buildable
 | |
|       else
 | |
|         docker compose pull || true
 | |
|       fi
 | |
|       : > "$lock"
 | |
|       echo "pulled"
 | |
|     fi
 | |
|   args:
 | |
|     chdir: "{{ docker_compose.directories.instance }}"
 | |
|     executable: /bin/bash
 | |
|   register: compose_pull
 | |
|   changed_when: "'pulled' in compose_pull.stdout"
 | |
|   environment:
 | |
|     COMPOSE_HTTP_TIMEOUT: 600
 | |
|     DOCKER_CLIENT_TIMEOUT: 600
 | |
|   when: MODE_UPDATE | bool
 | |
|   listen:
 | |
|     - docker compose up
 | |
|     - docker compose restart
 | |
| 
 | |
| - name: Build docker compose
 | |
|   shell: |
 | |
|     set -euo pipefail
 | |
|     docker compose build || { 
 | |
|       echo "Retrying without cache and pulling bases...";
 | |
|       docker compose build --no-cache{{ ' --pull' if MODE_UPDATE | bool else ''}}; 
 | |
|     }
 | |
|   args:
 | |
|     chdir: "{{ docker_compose.directories.instance }}"
 | |
|     executable: /bin/bash
 | |
|   environment:
 | |
|     COMPOSE_HTTP_TIMEOUT: 600
 | |
|     DOCKER_CLIENT_TIMEOUT: 600
 | |
|     # Faster build
 | |
|     DOCKER_BUILDKIT: "1"
 | |
|     COMPOSE_DOCKER_CLI_BUILD: "1"
 | |
|   listen:
 | |
|     - docker compose build
 | |
| 
 | |
| - name: docker compose up
 | |
|   shell: |
 | |
|     if [ -f "{{ docker_compose.files.env }}" ]; then
 | |
|       docker compose -p {{ application_id | get_entity_name }} --env-file "{{ docker_compose.files.env }}" up -d --force-recreate --remove-orphans
 | |
|     else
 | |
|       docker compose -p {{ application_id | get_entity_name }} up -d --force-recreate --remove-orphans
 | |
|     fi
 | |
|   args:
 | |
|     chdir: "{{ docker_compose.directories.instance }}"
 | |
|     executable: /bin/bash
 | |
|   environment:
 | |
|     COMPOSE_HTTP_TIMEOUT: 600
 | |
|     DOCKER_CLIENT_TIMEOUT: 600
 | |
|   listen:
 | |
|     - docker compose up
 | |
| 
 | |
| - name: docker compose restart
 | |
|   command:
 | |
|     cmd: 'docker compose restart'
 | |
|     chdir: "{{ docker_compose.directories.instance }}"
 | |
|   listen: docker compose restart
 |