--- # Pre-pull Docker images that CI runners need to avoid pulling them on # every CI run. The runner container image (ci-full) is large (~3.3GB) # and pulling it on every run causes timeouts and disk pressure. # # The healthcheck script's disk-space prune only removes dangling images # (not tagged ones), so pre-pulled images persist between CI runs. # # Set gitea_runner_pre_pull_images to a list of image refs to pull, or # empty list to skip pre-pulling. - name: Pre-pull Docker images for CI runner ansible.builtin.command: "docker pull {{ item }}" become: true become_user: "{{ gitea_runner_service_user }}" environment: DOCKER_HOST: "unix:///run/user/{{ gitea_runner_uid }}/docker.sock" XDG_RUNTIME_DIR: "/run/user/{{ gitea_runner_uid }}" DBUS_SESSION_BUS_ADDRESS: "unix:path=/run/user/{{ gitea_runner_uid | default(0) }}/bus" register: gitea_runner_pre_pull_result changed_when: "'Status: Downloaded' in gitea_runner_pre_pull_result.stdout or 'Status: Downloaded' in gitea_runner_pre_pull_result.stderr" retries: 3 delay: 5 until: gitea_runner_pre_pull_result is success loop: "{{ gitea_runner_pre_pull_images }}" when: - gitea_runner_docker_rootless_setup - gitea_runner_pre_pull_images | length > 0