From 55fd4f3b2499e3253b1ed00da9bc48f767cb1f0d Mon Sep 17 00:00:00 2001 From: Clark Boylan Date: Mon, 17 Feb 2025 10:07:03 -0800 Subject: [PATCH] Use mirrored buildkit:buildx-stable-1 image Docker buildx create uses a specific image hosted on Docker Hub by default. Unfortunately, Docker Hub has put in place some fairly restrictive rate limits that have created problems for people. Override the image location when running docker buildx create to pull a mirrored image from quay.io which should mitigate the rate limit issues. Change-Id: I9b9394b89d925a06538db958cf66c86360eefceb --- roles/build-container-image/tasks/setup-buildx.yaml | 4 ++-- roles/build-docker-image/tasks/setup-buildx.yaml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/roles/build-container-image/tasks/setup-buildx.yaml b/roles/build-container-image/tasks/setup-buildx.yaml index a55c9b0e4..05e610001 100644 --- a/roles/build-container-image/tasks/setup-buildx.yaml +++ b/roles/build-container-image/tasks/setup-buildx.yaml @@ -7,7 +7,7 @@ # step below. More info here: # https://docs.docker.com/reference/cli/docker/buildx/create/#buildkitd-config - name: Create builder - command: "docker buildx create --name mybuilder --node {{ inventory_hostname | replace('-', '_') }} --driver-opt network=host{% if buildset_registry is defined %} --config /etc/buildkit/buildkitd.toml {% endif %}" + command: "docker buildx create --name mybuilder --node {{ inventory_hostname | replace('-', '_') }} --driver=docker-container --driver-opt image=quay.io/opendevmirror/buildkit:buildx-stable-1 --driver-opt network=host{% if buildset_registry is defined %} --config /etc/buildkit/buildkitd.toml {% endif %}" when: inventory_hostname == ansible_play_hosts[0] - name: Add host key to known_hosts @@ -16,7 +16,7 @@ delegate_to: "{{ ansible_play_hosts[0] }}" - name: Append builders from other nodes - command: "docker buildx create --append --name mybuilder --node {{ inventory_hostname | replace('-', '_') }} --driver-opt network=host{% if buildset_registry is defined %} --config /etc/buildkit/buildkitd.toml {% endif %} ssh://{{ ansible_user }}@{{ ansible_host }}" + command: "docker buildx create --append --name mybuilder --node {{ inventory_hostname | replace('-', '_') }} --driver-opt image=quay.io/opendevmirror/buildkit:buildx-stable-1 --driver-opt network=host{% if buildset_registry is defined %} --config /etc/buildkit/buildkitd.toml {% endif %} ssh://{{ ansible_user }}@{{ ansible_host }}" when: inventory_hostname != ansible_play_hosts[0] delegate_to: "{{ ansible_play_hosts[0] }}" diff --git a/roles/build-docker-image/tasks/setup-buildx.yaml b/roles/build-docker-image/tasks/setup-buildx.yaml index 241bffe81..0ff55bfc0 100644 --- a/roles/build-docker-image/tasks/setup-buildx.yaml +++ b/roles/build-docker-image/tasks/setup-buildx.yaml @@ -9,7 +9,7 @@ # step below. More info here: # https://docs.docker.com/reference/cli/docker/buildx/create/#buildkitd-config - name: Create builder - command: "docker buildx create --name mybuilder --node {{ inventory_hostname | replace('-', '_') }} --driver-opt network=host{% if buildset_registry is defined %} --config /etc/buildkit/buildkitd.toml {% endif %}" + command: "docker buildx create --name mybuilder --node {{ inventory_hostname | replace('-', '_') }} --driver=docker-container --driver-opt image=quay.io/opendevmirror/buildkit:buildx-stable-1 --driver-opt network=host{% if buildset_registry is defined %} --config /etc/buildkit/buildkitd.toml {% endif %}" environment: DOCKER_CLI_EXPERIMENTAL: enabled when: inventory_hostname == ansible_play_hosts[0] @@ -20,7 +20,7 @@ delegate_to: "{{ ansible_play_hosts[0] }}" - name: Append builders from other nodes - command: "docker buildx create --append --name mybuilder --node {{ inventory_hostname | replace('-', '_') }} --driver-opt network=host{% if buildset_registry is defined %} --config /etc/buildkit/buildkitd.toml {% endif %} ssh://{{ ansible_user }}@{{ ansible_host }}" + command: "docker buildx create --append --name mybuilder --node {{ inventory_hostname | replace('-', '_') }} --driver=docker-container --driver-opt image=quay.io/opendevmirror/buildkit:buildx-stable-1 --driver-opt network=host{% if buildset_registry is defined %} --config /etc/buildkit/buildkitd.toml {% endif %} ssh://{{ ansible_user }}@{{ ansible_host }}" environment: DOCKER_CLI_EXPERIMENTAL: enabled when: inventory_hostname != ansible_play_hosts[0]