diff --git a/files/daemon.json b/files/daemon.json new file mode 100644 index 0000000000000000000000000000000000000000..c01a9fa151f23c63983e30b04380f1383d613908 --- /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 0000000000000000000000000000000000000000..7f8d137bedd850ea156b6e5f00a2c89204c92a43 --- /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 0000000000000000000000000000000000000000..75fd40705e9c27dc63a87e2aa5632d9d50f24bc8 --- /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 2a1cfdd69c2572b72f72e3b9b7870fd123579c07..e5e4ffd111d79cf15f2ca69bbcef1ab1cfe3f442 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