From aa4f66622e0213acd552e45bb754b66b19765ade Mon Sep 17 00:00:00 2001 From: Janis Horsts Date: Fri, 26 Jun 2026 14:39:35 +0100 Subject: [PATCH 1/3] feat: add alpine:3.24 dind --- .github/renovate.json5 | 12 ++++++++++++ .github/workflows/ci.yml | 1 + CONTRIBUTING.md | 2 ++ README.md | 2 ++ os/alpine-3.24/Earthfile | 42 ++++++++++++++++++++++++++++++++++++++++ 5 files changed, 59 insertions(+) create mode 100644 os/alpine-3.24/Earthfile diff --git a/.github/renovate.json5 b/.github/renovate.json5 index 48a86ce..304a208 100644 --- a/.github/renovate.json5 +++ b/.github/renovate.json5 @@ -58,6 +58,18 @@ datasourceTemplate: 'repology', versioningTemplate: 'loose', }, + { + customType: 'regex', + managerFilePatterns: [ + 'README.md', + ], + matchStrings: [ + '\\*\\s+\\`alpine-3\\.24-docker-(?.*?)\\`\\n', + ], + depNameTemplate: 'alpine_3_24/docker', + datasourceTemplate: 'repology', + versioningTemplate: 'loose', + }, { customType: 'regex', managerFilePatterns: [ diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9460296..bb5e314 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -38,6 +38,7 @@ jobs: os: - alpine-3.22 - alpine-3.23 + - alpine-3.24 - ubuntu-20.04 - ubuntu-24.04 - ubuntu-26.04 diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 9b3d5e4..6d2e4b5 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -26,6 +26,8 @@ dependencies that will trigger new versions of the dind images such as the docke │ └── Earthfile ├── alpine-3.23 │ └── Earthfile + ├── alpine-3.24 + │ └── Earthfile ├── ubuntu-20.04 │ └── Earthfile └── ubuntu-24.04 diff --git a/README.md b/README.md index 086aa9e..5ebd278 100644 --- a/README.md +++ b/README.md @@ -11,6 +11,7 @@ For information on how to use these images, please refer to [docker in EarthBuil This image supports the following Linux distributions: * alpine:3.22 * alpine:3.23 +* alpine:3.24 * ubuntu:20.04 * ubuntu:24.04 * ubuntu:26.04 @@ -18,6 +19,7 @@ This image supports the following Linux distributions: For which the current latest tags (respectively) are: * `alpine-3.22-docker-28.3.3-r2` * `alpine-3.23-docker-29.1.2-r1` +* `alpine-3.24-docker-29.5.3-r0` * `ubuntu-20.04-docker-28.1.1-1` * `ubuntu-24.04-docker-28.5.1-1` * `ubuntu-26.04-docker-29.4.0-1` diff --git a/os/alpine-3.24/Earthfile b/os/alpine-3.24/Earthfile new file mode 100644 index 0000000..11e3a8e --- /dev/null +++ b/os/alpine-3.24/Earthfile @@ -0,0 +1,42 @@ +VERSION --build-auto-skip 0.8 + +PROJECT earthly-technologies/core + +FROM alpine:3.24.1@sha256:28bd5fe8b56d1bd048e5babf5b10710ebe0bae67db86916198a6eec434943f8b + +IMPORT ../../common AS common + +ARG --global OS_IMAGE=alpine + +ARG --global OS_VERSION=3.24 +# renovate: datasource=repology depName=alpine_3_24/docker +ARG --global DOCKER_VERSION=29.5.3-r0 + +# DIR_PATH is set to that common targets can call os specific targets. It should match the directory name this Earthfile is located in +ARG --global DIR_PATH=$OS_IMAGE-$OS_VERSION + +# release builds the image using a new datetime as a suffix and run tests against the pushed image, then finally retag and push the image without the datetime suffix +release: + RUN --no-cache date --utc +%Y%m%d%H%M%S > datetime + LET datetime="$(cat datetime)" + WAIT + BUILD --pass-args common+build-and-test --SUFFIX=$datetime + END + COPY --dir --pass-args common+get-image-info/image-info . + LET image_tag="$(cat image-info/tag)-$datetime" + BUILD --pass-args common+push-new-tag-multi-platform --TAG_WITH_DATE=$image_tag + +# test-build will build a test image that is pushed to a temporary registry and run tests against it +test-build: + BUILD --pass-args common+build-and-test --IMAGE_NAME="dindtest" + +# build builds a dind image +build: + BUILD --pass-args --platform=linux/amd64 --platform=linux/arm64 common+build + +# test runs test for a dind image +# this is primarly used to run against a newly, temporariy image build by +test-build +test: + BUILD --pass-args common+alpine-kind-test + BUILD --pass-args common+alpine-docker-compose-test + BUILD --pass-args common+test From aa3f6d7d0de6adfc979f69c235f3b57608dc92a0 Mon Sep 17 00:00:00 2001 From: Janis Horsts Date: Fri, 26 Jun 2026 14:49:59 +0100 Subject: [PATCH 2/3] chore: tidy comments --- os/alpine-3.22/Earthfile | 4 ++-- os/alpine-3.23/Earthfile | 4 ++-- os/alpine-3.24/Earthfile | 4 ++-- os/ubuntu-20.04/Earthfile | 4 ++-- os/ubuntu-24.04/Earthfile | 4 ++-- os/ubuntu-26.04/Earthfile | 4 ++-- 6 files changed, 12 insertions(+), 12 deletions(-) diff --git a/os/alpine-3.22/Earthfile b/os/alpine-3.22/Earthfile index 46923e1..d2f0a4b 100644 --- a/os/alpine-3.22/Earthfile +++ b/os/alpine-3.22/Earthfile @@ -10,7 +10,7 @@ ARG --global OS_VERSION=3.22 # renovate: datasource=repology depName=alpine_3_22/docker versioning=loose ARG --global DOCKER_VERSION=28.3.3-r5 -# DIR_PATH is set to that common targets can call os specific targets. It should match the directory name this Earthfile is located in +# DIR_PATH must match the directory name of this Earthfile ARG --global DIR_PATH=$OS_IMAGE-$OS_VERSION # release builds the image using a new datetime as a suffix and run tests against the pushed image, then finally retag and push the image without the datetime suffix @@ -33,7 +33,7 @@ build: BUILD --pass-args --platform=linux/amd64 --platform=linux/arm64 common+build # test runs test for a dind image -# this is primarly used to run against a newly, temporariy image build by +test-build +# runs tests against the temporary image built by +test-build test: BUILD --pass-args common+alpine-kind-test BUILD --pass-args common+alpine-docker-compose-test diff --git a/os/alpine-3.23/Earthfile b/os/alpine-3.23/Earthfile index 5b886a7..6d11ae5 100644 --- a/os/alpine-3.23/Earthfile +++ b/os/alpine-3.23/Earthfile @@ -12,7 +12,7 @@ ARG --global OS_VERSION=3.23 # renovate: datasource=repology depName=alpine_3_23/docker ARG --global DOCKER_VERSION=29.5.2-r0 -# DIR_PATH is set to that common targets can call os specific targets. It should match the directory name this Earthfile is located in +# DIR_PATH must match the directory name of this Earthfile ARG --global DIR_PATH=$OS_IMAGE-$OS_VERSION # release builds the image using a new datetime as a suffix and run tests against the pushed image, then finally retag and push the image without the datetime suffix @@ -35,7 +35,7 @@ build: BUILD --pass-args --platform=linux/amd64 --platform=linux/arm64 common+build # test runs test for a dind image -# this is primarly used to run against a newly, temporariy image build by +test-build +# runs tests against the temporary image built by +test-build test: BUILD --pass-args common+alpine-kind-test BUILD --pass-args common+alpine-docker-compose-test diff --git a/os/alpine-3.24/Earthfile b/os/alpine-3.24/Earthfile index 11e3a8e..5b4019a 100644 --- a/os/alpine-3.24/Earthfile +++ b/os/alpine-3.24/Earthfile @@ -12,7 +12,7 @@ ARG --global OS_VERSION=3.24 # renovate: datasource=repology depName=alpine_3_24/docker ARG --global DOCKER_VERSION=29.5.3-r0 -# DIR_PATH is set to that common targets can call os specific targets. It should match the directory name this Earthfile is located in +# DIR_PATH must match the directory name of this Earthfile ARG --global DIR_PATH=$OS_IMAGE-$OS_VERSION # release builds the image using a new datetime as a suffix and run tests against the pushed image, then finally retag and push the image without the datetime suffix @@ -35,7 +35,7 @@ build: BUILD --pass-args --platform=linux/amd64 --platform=linux/arm64 common+build # test runs test for a dind image -# this is primarly used to run against a newly, temporariy image build by +test-build +# runs tests against the temporary image built by +test-build test: BUILD --pass-args common+alpine-kind-test BUILD --pass-args common+alpine-docker-compose-test diff --git a/os/ubuntu-20.04/Earthfile b/os/ubuntu-20.04/Earthfile index 37ef6eb..9b66835 100644 --- a/os/ubuntu-20.04/Earthfile +++ b/os/ubuntu-20.04/Earthfile @@ -11,7 +11,7 @@ ARG --global OS_VERSION=20.04 LET docker_package_version=28.1.1 ARG --global DOCKER_VERSION=5:$docker_package_version-1~ubuntu.$OS_VERSION~focal -# DIR_PATH is set to that common targets can call os specific targets. It should match the directory name this Earthfile is located in +# DIR_PATH must match the directory name of this Earthfile ARG --global DIR_PATH=$OS_IMAGE-$OS_VERSION # release builds the image using a new datetime as a suffix and run tests against the pushed image, then finally retag and push the image without the datetime suffix @@ -34,7 +34,7 @@ build: BUILD --pass-args --platform=linux/amd64 --platform=linux/arm64 common+build # test runs test for a dind image -# this is primarly used to run against a newly, temporariy image build by +test-build +# runs tests against the temporary image built by +test-build test: BUILD --pass-args common+ubuntu-kind-test BUILD --pass-args common+test diff --git a/os/ubuntu-24.04/Earthfile b/os/ubuntu-24.04/Earthfile index 43dada7..32ddb47 100644 --- a/os/ubuntu-24.04/Earthfile +++ b/os/ubuntu-24.04/Earthfile @@ -11,7 +11,7 @@ ARG --global OS_VERSION=24.04 LET docker_package_version=28.5.2 ARG --global DOCKER_VERSION=5:$docker_package_version-1~ubuntu.$OS_VERSION~noble -# DIR_PATH is set to that common targets can call os specific targets. It should match the directory name this Earthfile is located in +# DIR_PATH must match the directory name of this Earthfile ARG --global DIR_PATH=$OS_IMAGE-$OS_VERSION # release builds the image using a new datetime as a suffix and run tests against the pushed image, then finally retag and push the image without the datetime suffix @@ -34,7 +34,7 @@ build: BUILD --pass-args --platform=linux/amd64 --platform=linux/arm64 common+build # test runs test for a dind image -# this is primarly used to run against a newly, temporariy image build by +test-build +# runs tests against the temporary image built by +test-build test: BUILD --pass-args common+ubuntu-kind-test BUILD --pass-args common+test diff --git a/os/ubuntu-26.04/Earthfile b/os/ubuntu-26.04/Earthfile index 48c1dc5..9f802c4 100644 --- a/os/ubuntu-26.04/Earthfile +++ b/os/ubuntu-26.04/Earthfile @@ -11,7 +11,7 @@ ARG --global OS_VERSION=26.04 LET docker_package_version=29.4.0 ARG --global DOCKER_VERSION=5:$docker_package_version-1~ubuntu.$OS_VERSION~resolute -# DIR_PATH is set to that common targets can call os specific targets. It should match the directory name this Earthfile is located in +# DIR_PATH must match the directory name of this Earthfile ARG --global DIR_PATH=$OS_IMAGE-$OS_VERSION # release builds the image using a new datetime as a suffix and run tests against the pushed image, then finally retag and push the image without the datetime suffix @@ -34,7 +34,7 @@ build: BUILD --pass-args --platform=linux/amd64 --platform=linux/arm64 common+build # test runs test for a dind image -# this is primarly used to run against a newly, temporariy image build by +test-build +# runs tests against the temporary image built by +test-build test: BUILD --pass-args common+ubuntu-kind-test BUILD --pass-args common+test From e08ca353f14486c36ffc350b84b5c60e7811054d Mon Sep 17 00:00:00 2001 From: Janis Horsts Date: Wed, 1 Jul 2026 17:39:53 +0100 Subject: [PATCH 3/3] chore: remove PROJECT command --- os/alpine-3.23/Earthfile | 2 -- os/alpine-3.24/Earthfile | 2 -- 2 files changed, 4 deletions(-) diff --git a/os/alpine-3.23/Earthfile b/os/alpine-3.23/Earthfile index 6d11ae5..a32f11b 100644 --- a/os/alpine-3.23/Earthfile +++ b/os/alpine-3.23/Earthfile @@ -1,7 +1,5 @@ VERSION --build-auto-skip 0.8 -PROJECT earthly-technologies/core - FROM alpine:3.24.1@sha256:28bd5fe8b56d1bd048e5babf5b10710ebe0bae67db86916198a6eec434943f8b IMPORT ../../common AS common diff --git a/os/alpine-3.24/Earthfile b/os/alpine-3.24/Earthfile index 5b4019a..36a3eca 100644 --- a/os/alpine-3.24/Earthfile +++ b/os/alpine-3.24/Earthfile @@ -1,7 +1,5 @@ VERSION --build-auto-skip 0.8 -PROJECT earthly-technologies/core - FROM alpine:3.24.1@sha256:28bd5fe8b56d1bd048e5babf5b10710ebe0bae67db86916198a6eec434943f8b IMPORT ../../common AS common