From 6b497e92f472212cb6f4f74b48dcd51b4ce90828 Mon Sep 17 00:00:00 2001 From: Thomas Sibley Date: Tue, 15 Oct 2024 22:23:59 -0700 Subject: [PATCH] fix(dev): Use a buildx builder instance we control instead of the default MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit We require the "docker-container" driver (via options we pass to `docker buildx build`, e.g. --cache-to) but the default builder instance may use the "docker" driver, leading to errors on dev machines like: ERROR: cache export feature is currently not supported for docker driver. Please switch to a different driver (eg. "docker buildx create --use") Being explicit about our builder avoids that. This same pattern is used in nextstrain/docker-base's devel/build.¹ ¹ Related-to: --- docker/dev | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/docker/dev b/docker/dev index 9d06b181e..8b525063d 100755 --- a/docker/dev +++ b/docker/dev @@ -430,7 +430,18 @@ if ! docker inspect --format '{{.Id}}' "${DOCKER_REPO}:${DOCKER_TARGET}-${DOCKER export -f docker_image_maybe_pull parallel docker_image_maybe_pull ::: "${images[@]}" + BUILDX_BUILDER=nextclade-builder + + if ! docker buildx inspect "${BUILDX_BUILDER}" &>/dev/null; then + # Using a persistent builder allows for faster local development. + # However, if this is changed and it was previously run on your machine, + # you may need to remove the builder manually before running the script: + # docker buildx rm "nextclade-builder" + docker buildx create --name "${BUILDX_BUILDER}" --driver docker-container --driver-opt network=host + fi + ${NICE} docker buildx build \ + --builder="${BUILDX_BUILDER}" \ --file="docker/docker-dev.dockerfile" \ --target="${DOCKER_TARGET}" \ --tag="${DOCKER_REPO}:${DOCKER_TARGET}" \