Files
grm/ansible/roles/gitea-runner/tasks/docker.yml
T
emil ea18793963
Post-merge Vikunja update / vikunja (push) Failing after 5s
CI / quality (push) Successful in 1m3s
CI / molecule-tests (2) (push) Successful in 6m57s
CI / molecule-tests (1) (push) Successful in 7m3s
CI / molecule-tests (0) (push) Successful in 9m17s
GRM-26: fix: CI pipeline for rootless Docker runners
2026-06-20 16:16:05 +00:00

101 lines
2.7 KiB
YAML

---
- name: Check if Docker is already installed
ansible.builtin.command: docker --version
register: docker_check
changed_when: false
failed_when: false
- name: Install Docker (Debian/Ubuntu)
when:
- ansible_facts['os_family'] == 'Debian'
- docker_check.rc != 0
block:
- name: Remove old Docker apt repository files
ansible.builtin.file:
path: "{{ item }}"
state: absent
loop:
- /etc/apt/sources.list.d/docker.list
- /etc/apt/keyrings/docker.gpg
- name: Install prerequisite packages
ansible.builtin.apt:
name:
- apt-transport-https
- ca-certificates
- curl
- gnupg
state: present
update_cache: true
cache_valid_time: 0
- name: Add Docker GPG key
ansible.builtin.get_url:
url: https://download.docker.com/linux/{{ ansible_facts['distribution'] | lower }}/gpg
dest: "{{ docker_gpg_key_path }}"
mode: "0644"
- name: Add Docker repository
ansible.builtin.deb822_repository:
name: docker
types: deb
uris: https://download.docker.com/linux/{{ ansible_facts['distribution'] | lower }}
suites: "{{ ansible_facts['distribution_release'] }}"
components: stable
signed_by: "{{ docker_gpg_key_path }}"
state: present
- name: Install Docker packages
ansible.builtin.apt:
name:
- docker-ce
- docker-ce-cli
- containerd.io
- docker-compose-plugin
state: present
update_cache: true
cache_valid_time: 0
- name: Install Docker (Arch Linux)
when:
- ansible_facts['os_family'] == 'Archlinux'
- docker_check.rc != 0
block:
- name: Install Docker packages
community.general.pacman:
name:
- docker
- docker-compose
state: present
update_cache: true
- name: Ensure Docker service is running (systemd)
ansible.builtin.systemd:
name: docker
state: started
enabled: true
when: systemd_available.stat.exists
- name: Start Docker daemon manually (no systemd)
ansible.builtin.shell: nohup dockerd > /var/log/dockerd.log 2>&1 &
when:
- not systemd_available.stat.exists
- docker_check.rc != 0
changed_when: true
- name: Wait for Docker daemon to be ready
ansible.builtin.command: docker version
register: docker_ready
until: docker_ready.rc == 0
retries: 10
delay: 2
changed_when: false
when: not systemd_available.stat.exists
- name: Add user to docker group
ansible.builtin.user:
name: "{{ ansible_user | default(ansible_facts['user_id']) }}"
groups: docker
append: true
when: ansible_user is defined or ansible_facts['user_id'] is defined