# 2026-10-27 Hyperling # Pulled out of llm.yml since the number of tasks is growing. - name: Workstation | Linux | Software | Docker | Install ansible.builtin.package: name: - docker - docker-compose - docker-buildx state: present - name: Workstation | Linux | Software | Docker | Install [runit] ansible.builtin.package: name: - docker-runit state: present when: ansible_pkg_mgr == "pacman" and ansible_service_mgr == "runit" - name: Workstation | Linux | Software | Docker | Group ansible.builtin.user: name: "{{ item }}" groups: docker append: true loop: - root - "{{ user }}" - name: Workstation | Linux | Software | Docker | Config | Dir ansible.builtin.file: name: /etc/docker state: directory owner: root mode: '0755' - name: Workstation | Linux | Software | Socker | Services | Enable ansible.builtin.service: name: "{{ item.name }}" state: "{{ 'started' if item.status else 'stopped' }}" enabled: "{{ item.status }}" loop: - { 'name': 'docker' , 'status': true } - name: Workstation | Linux | Software | Docker | Network Sync | runit | Facts ansible.builtin.set_fact: docker_network_sync: "docker-network-sync" - name: Workstation | Linux | Software | Docker | Network Sync | runit | Block block: - name: Workstation | Linux | Software | Docker | Network Sync | runit | /etc/sv ansible.builtin.file: name: "/etc/sv/{{ docker_network_sync }}/log" state: directory owner: root mode: "0755" - name: Workstation | Linux | Software | Docker | Network Sync | runit | /var/log ansible.builtin.file: name: "/var/log/{{ docker_network_sync }}" state: directory owner: "{{ user }}" mode: "0755" - name: Workstation | Linux | Software | Docker | Network Sync | runit | Run ansible.builtin.copy: dest: /etc/sv/{{ docker_network_sync }}/run content: | #!/bin/sh # Ensure all containers using host network keep a correct resolv.conf. exec 2>&1 set -e while true; do for c in $(docker container ls --filter network=host -q); do echo "RUN: Container ID $c" docker exec -i -u root $c sh -c 'tee /etc/resolv.conf' < /etc/resolv.conf done echo "RUN: Done, sleeping." sleep 20 done backup: false owner: root mode: '0644' - name: Workstation | Linux | Software | Docker | Network Sync | runit | Finish ansible.builtin.copy: dest: /etc/sv/{{ docker_network_sync }}/finish content: | {{ runit_finish_sleep }} mode: "0755" - name: Workstation | Linux | Software | Docker | Network Sync | runit | Log ansible.builtin.copy: dest: /etc/sv/{{ docker_network_sync }}/log/run content: | #!/bin/sh -e exec svlogd -tt /var/log/{{ docker_network_sync }} mode: "0755" - name: Workstation | Linux | Software | Docker | Network Sync | runit | Log Config ansible.builtin.copy: dest: /var/log/{{ docker_network_sync }}/config content: | {{ runit_log_config_1mb }} mode: "0755" - name: Workstation | Linux | Software | Socker | Services | Enable ansible.builtin.service: name: "{{ item.name }}" state: "{{ 'started' if item.status else 'stopped' }}" enabled: "{{ item.status }}" loop: - { 'name': '{{ docker_network_sync }}', 'status': true } when: ansible_service_mgr == "runit"