--- # Fix Nginx 404 by setting up shared app-code volume - name: Check if application stack directory exists stat: path: "{{ app_stack_path }}" register: app_stack_dir - name: Fail if application stack directory doesn't exist fail: msg: "Application stack directory not found at {{ app_stack_path }}" when: not app_stack_dir.stat.exists - name: Copy updated docker-compose.yml to production copy: src: "{{ playbook_dir }}/../../stacks/application/docker-compose.yml" dest: "{{ app_stack_path }}/docker-compose.yml" owner: "{{ ansible_user }}" group: "{{ ansible_user }}" mode: '0644' register: compose_updated - name: Initialize app-code volume with files from app image shell: | # Stop containers first cd {{ app_stack_path }} docker compose down nginx || true # Create and initialize app-code volume docker volume create app-code || true # Copy files from app image to volume using temporary container docker run --rm \ -v app-code:/target \ {{ app_image_external }}:latest \ sh -c "cp -r /var/www/html/* /target/ 2>/dev/null || true" args: executable: /bin/bash register: volume_init changed_when: true failed_when: false - name: Start containers shell: | cd {{ app_stack_path }} docker compose up -d args: executable: /bin/bash register: containers_started - name: Wait for containers to be healthy pause: seconds: 15 - name: Check container status shell: | cd {{ app_stack_path }} docker compose ps args: executable: /bin/bash register: final_status - name: Display container status debug: msg: "{{ final_status.stdout_lines }}" - name: Display summary debug: msg: - "=== Nginx 404 Fix Complete ===" - "Volume initialized: {{ 'Yes' if volume_init.changed else 'No' }}" - "Containers restarted: {{ 'Yes' if containers_started.changed else 'No' }}"