From b253eadf62ef257e9f61cac5cfb500512489b821 Mon Sep 17 00:00:00 2001 From: nd <git@notandy.de> Date: Fri, 24 Dec 2021 20:22:27 +0100 Subject: [PATCH] add docker hub cache --- files/daemon.json | 4 ++++ files/docker-hub-cache.service | 14 ++++++++++++++ handlers/main.yml | 10 ++++++++++ tasks/main.yml | 23 +++++++++++++++++++++++ 4 files changed, 51 insertions(+) create mode 100644 files/daemon.json create mode 100644 files/docker-hub-cache.service create mode 100644 handlers/main.yml diff --git a/files/daemon.json b/files/daemon.json new file mode 100644 index 0000000..c01a9fa --- /dev/null +++ b/files/daemon.json @@ -0,0 +1,4 @@ +{ + "registry-mirrors": ["http://127.0.0.1:5000"] +} + diff --git a/files/docker-hub-cache.service b/files/docker-hub-cache.service new file mode 100644 index 0000000..7f8d137 --- /dev/null +++ b/files/docker-hub-cache.service @@ -0,0 +1,14 @@ +[Unit] +Description=Docker Hub Cache +After=docker.service +Requires=docker.service + +[Service] +TimeoutStartSec=0 +Restart=always +ExecStartPre=-/usr/bin/docker stop registry +ExecStartPre=-/usr/bin/docker rm registry +ExecStart=/usr/bin/docker run -p 127.0.0.1:5000:5000 -e REGISTRY_PROXY_REMOTEURL=https://registry-1.docker.io --restart always --name registry registry:2 + +[Install] +WantedBy=default.target diff --git a/handlers/main.yml b/handlers/main.yml new file mode 100644 index 0000000..75fd407 --- /dev/null +++ b/handlers/main.yml @@ -0,0 +1,10 @@ +- name: update apt cache + apt: update_cache=yes +- name: restart docker-hub-cache + service: + name: docker-hub-cache + enabled: true + state: restarted + daemon_reload: true +- name: reload docker + service: name=docker state=reloaded diff --git a/tasks/main.yml b/tasks/main.yml index 2a1cfdd..e5e4ffd 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -6,10 +6,15 @@ - name: add docker gpg key apt_key: url: https://download.docker.com/linux/{{ ansible_distribution|lower }}/gpg + notify: "update apt cache" - name: add docker repo apt_repository: repo: deb [arch=amd64] https://download.docker.com/linux/{{ ansible_distribution|lower }} {{ ansible_distribution_release|lower }} stable + notify: "update apt cache" + +- name: flush handlers so apt cahe is updated + meta: flush_handlers - name: install docker components apt: @@ -18,6 +23,24 @@ - docker-ce-cli - containerd.io +- name: setup docker hub proxy service + notify: restart docker-hub-cache + copy: + src: docker-hub-cache.service + dest: /etc/systemd/system/docker-hub-cache.service + mode: 0644 + owner: root + group: root + +- name: copy daemon config + notify: reload docker + copy: + src: daemon.json + dest: /etc/docker/daemon.json + mode: 0644 + owner: root + group: root + - name: set periodic docker system prune cron: name: docker-prune -- GitLab