# Design Specification: Docker Service Redeployment (Jellyfin & Gitea Updates) ## 1. Goal Redeploy Docker services on the `docker-host11` host to apply image version updates: - **Jellyfin:** `10.10` → `10.11` - **Gitea:** `1.23-rootless` → `1.24-rootless` ## 2. Context The `vars/group_vars/docker/docker.yaml` file has been modified with new image versions. These changes need to be applied via the existing Ansible infrastructure. ## 3. Implementation Approach: Full Playbook Execution This approach ensures the entire state of the Docker host matches the defined configuration. ### 3.1 Targeted Components - **Inventory:** `vars/docker.ini` - **Playbook:** `playbooks/docker.yaml` - **Target Host:** `docker-host11` ### 3.2 Workflow Details 1. **Host Verification:** Confirm accessibility of `docker-host11` via Ansible. 2. **Playbook Execution:** Run `ansible-playbook -i vars/docker.ini playbooks/docker.yaml`. 3. **Template Application:** The `docker_host` role will update `/opt/docker/compose/compose.yaml` using the `compose.yaml.j2` template. 4. **Trigger Handlers:** The `template` task triggers: - `Restart docker` - `Restart compose` 5. **Container Recreation:** Docker Compose will detect the image change, pull the new images, and recreate the containers. ## 4. Success Criteria & Verification - **Criteria 1:** Playbook completes without failure. - **Criteria 2:** Jellyfin container is running image `jellyfin/jellyfin:10.11`. - **Criteria 3:** Gitea container is running image `gitea/gitea:1.24-rootless`. ### Verification Steps - Run `ansible -i vars/docker.ini docker_host -m shell -a "docker ps --format '{{.Names}}: {{.Image}}'"` to verify running versions. - Check service availability via HTTP (if accessible). ## 5. Potential Risks - **Service Downtime:** Containers will restart during image update. - **Pull Failures:** Depends on external network connectivity to Docker Hub / registries. - **Breaking Changes:** Version upgrades may have internal migration steps (standard for Jellyfin/Gitea).