From 1db40cdf9cb25b446ffd15dfd1e3e6f178ae2257 Mon Sep 17 00:00:00 2001 From: Thedro Neely Date: Mon, 23 Mar 2020 16:42:44 -0400 Subject: tasks/docker: Move alpine bootstrap to common tasks --- roles/common/files/1-cgroup-docker.start | 20 ++++++++++++++++++++ roles/common/tasks/docker/alpine.yml | 31 +++++++++++++++++++++++++++++++ 2 files changed, 51 insertions(+) create mode 100644 roles/common/files/1-cgroup-docker.start create mode 100644 roles/common/tasks/docker/alpine.yml (limited to 'roles/common') diff --git a/roles/common/files/1-cgroup-docker.start b/roles/common/files/1-cgroup-docker.start new file mode 100644 index 0000000..15c2172 --- /dev/null +++ b/roles/common/files/1-cgroup-docker.start @@ -0,0 +1,20 @@ +# https://forum.proxmox.com/threads/docker-daemon-running-in-alpine-container-solved.58999/ + +# remove dirs for failed mounts +rmdir /sys/fs/cgroup/cpu && rmdir /sys/fs/cgroup/cpuacct && rmdir /sys/fs/cgroup/net_cls && rmdir /sys/fs/cgroup/net_prio + +# mount missing cgroups (Ubuntu style) +mkdir "/sys/fs/cgroup/cpu,cpuacct" +mount -n -t cgroup -o "nodev,noexec,nosuid,cpu,cpuacct" "cpu,cpuacct" "/sys/fs/cgroup/cpu,cpuacct" +ln -s "cpu,cpuacct" /sys/fs/cgroup/cpu +ln -s "cpu,cpuacct" /sys/fs/cgroup/cpuacct + +mkdir "/sys/fs/cgroup/net_cls,net_prio" +mount -n -t cgroup -o "nodev,noexec,nosuid,net_cls,net_prio" "net_cls,net_prio" "/sys/fs/cgroup/net_cls,net_prio" +ln -s "net_cls,net_prio" /sys/fs/cgroup/net_cls +ln -s "net_cls,net_prio" /sys/fs/cgroup/net_prio + +# mount systemd cgroup (Alpine mounts openrc, but Docker requires systemd...) +# (based on hint at https://k9s.hatenablog.jp/entry/2019/06/16/075741) +mkdir /sys/fs/cgroup/systemd +mount -n -t cgroup -o none,name=systemd cgroup /sys/fs/cgroup/systemd diff --git a/roles/common/tasks/docker/alpine.yml b/roles/common/tasks/docker/alpine.yml new file mode 100644 index 0000000..ce759a4 --- /dev/null +++ b/roles/common/tasks/docker/alpine.yml @@ -0,0 +1,31 @@ +--- +- name: Installing Docker + apk: + state: present + update_cache: yes + name: + - docker + - docker-py + +- name: Ensuring Docker has been started + service: + name: docker + state: started + enabled: yes + +- name: Copying cgroups mount script to local.d + copy: + src: ../../../common/files/1-cgroup-docker.start + dest: /etc/local.d/1-cgroup-docker.start + mode: '0700' + +- name: Ensuring local service has been started + service: + name: local + state: started + enabled: yes + +- name: Running hello-world test + docker_container: + name: hello-world + image: hello-world -- cgit v1.2.3