From 3320750e907b301b5568a260a9f0c8d99a371987 Mon Sep 17 00:00:00 2001 From: Janis Horsts Date: Sat, 25 Apr 2026 13:18:48 +0100 Subject: [PATCH 1/4] feat: add ubuntu 26.04 --- .github/workflows/ci.yml | 1 + CONTRIBUTING.md | 6 +++++- README.md | 2 ++ os/alpine-3.22/Earthfile | 4 ++-- os/alpine-3.23/Earthfile | 4 ++-- os/ubuntu-20.04/Earthfile | 4 ++-- os/ubuntu-23.04/Earthfile | 4 ++-- os/ubuntu-24.04/Earthfile | 4 ++-- os/ubuntu-26.04/Earthfile | 40 +++++++++++++++++++++++++++++++++++++++ 9 files changed, 58 insertions(+), 11 deletions(-) create mode 100644 os/ubuntu-26.04/Earthfile diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b23c24b..d7b876f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -27,6 +27,7 @@ jobs: - ubuntu-20.04 - ubuntu-23.04 - ubuntu-24.04 + - ubuntu-26.04 runs-on: ubuntu-24.04 permissions: contents: read diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 11638ca..33ad939 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -22,13 +22,17 @@ dependencies that will trigger new versions of the dind images such as the docke ├── common │ └── Earthfile // A library of common helper targets └── os // Each directory contains an Earthfile with targets to maintain the specific os (e.g. +test, +build) - ├── alpine + ├── alpine-3.22 + │ └── Earthfile + ├── alpine-3.23 │ └── Earthfile ├── ubuntu-20.04 │ └── Earthfile ├── ubuntu-23.04 │ └── Earthfile └── ubuntu-24.04 + │ └── Earthfile + └── ubuntu-26.04 └── Earthfile ``` diff --git a/README.md b/README.md index a393448..39a6468 100644 --- a/README.md +++ b/README.md @@ -14,6 +14,7 @@ This image supports the following Linux distributions: * ubuntu:20.04 * ubuntu:23.04 * ubuntu:24.04 +* ubuntu:26.04 For which the current latest tags (respectively) are: * `alpine-3.22-docker-28.3.3-r2` @@ -21,6 +22,7 @@ For which the current latest tags (respectively) are: * `ubuntu-20.04-docker-28.1.1-1` * `ubuntu-23.04-docker-25.0.2-1` * `ubuntu-24.04-docker-28.5.1-1` +* `ubuntu-26.04-docker-29.4.1-1` For other available tags, please check out [ghcr.io/earthbuild/dind](https://github.com/earthbuild/dind/pkgs/container/dind/versions?filters%5Bversion_type%5D=tagged) or [earthbuild/dind](https://hub.docker.com/r/earthbuild/dind/tags). diff --git a/os/alpine-3.22/Earthfile b/os/alpine-3.22/Earthfile index 810b0ed..83481dd 100644 --- a/os/alpine-3.22/Earthfile +++ b/os/alpine-3.22/Earthfile @@ -28,11 +28,11 @@ release: test-build: BUILD --pass-args common+build-and-test --IMAGE_NAME="dindtest" -# build builds an dind:alpine image +# build builds an dind image build: BUILD --pass-args --platform=linux/amd64 --platform=linux/arm64 common+build -# test runs test for a dind:alpine image +# 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 diff --git a/os/alpine-3.23/Earthfile b/os/alpine-3.23/Earthfile index fd51b75..519f899 100644 --- a/os/alpine-3.23/Earthfile +++ b/os/alpine-3.23/Earthfile @@ -30,11 +30,11 @@ release: test-build: BUILD --pass-args common+build-and-test --IMAGE_NAME="dindtest" -# build builds an dind:alpine image +# build builds an dind image build: BUILD --pass-args --platform=linux/amd64 --platform=linux/arm64 common+build -# test runs test for a dind:alpine image +# 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 diff --git a/os/ubuntu-20.04/Earthfile b/os/ubuntu-20.04/Earthfile index 6ddaecd..a9ffdf4 100644 --- a/os/ubuntu-20.04/Earthfile +++ b/os/ubuntu-20.04/Earthfile @@ -29,11 +29,11 @@ release: test-build: BUILD --pass-args common+build-and-test --IMAGE_NAME="dindtest" -# build builds an dind:alpine image +# build builds an dind image build: BUILD --pass-args --platform=linux/amd64 --platform=linux/arm64 common+build -# test runs test for a dind:alpine image +# 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+ubuntu-kind-test diff --git a/os/ubuntu-23.04/Earthfile b/os/ubuntu-23.04/Earthfile index 18bc351..50a704d 100644 --- a/os/ubuntu-23.04/Earthfile +++ b/os/ubuntu-23.04/Earthfile @@ -29,11 +29,11 @@ release: test-build: BUILD --pass-args common+build-and-test --IMAGE_NAME="dindtest" -# build builds an dind:alpine image +# build builds an dind image build: BUILD --pass-args --platform=linux/amd64 --platform=linux/arm64 common+build -# test runs test for a dind:alpine image +# 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+ubuntu-kind-test diff --git a/os/ubuntu-24.04/Earthfile b/os/ubuntu-24.04/Earthfile index b04729f..fb59750 100644 --- a/os/ubuntu-24.04/Earthfile +++ b/os/ubuntu-24.04/Earthfile @@ -29,11 +29,11 @@ release: test-build: BUILD --pass-args common+build-and-test --IMAGE_NAME="dindtest" -# build builds an dind:alpine image +# build builds an dind image build: BUILD --pass-args --platform=linux/amd64 --platform=linux/arm64 common+build -# test runs test for a dind:alpine image +# 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+ubuntu-kind-test diff --git a/os/ubuntu-26.04/Earthfile b/os/ubuntu-26.04/Earthfile new file mode 100644 index 0000000..95590f8 --- /dev/null +++ b/os/ubuntu-26.04/Earthfile @@ -0,0 +1,40 @@ +VERSION --build-auto-skip 0.8 + +FROM alpine:3.23.3@sha256:25109184c71bdad752c8312a8623239686a9a2071e8825f20acb8f2198c3f659 + +IMPORT ../../common AS common + +ARG --global OS_IMAGE=ubuntu + +ARG --global OS_VERSION=26.04 +# renovate: datasource=github-releases depName=docker/docker +LET docker_package_version=29.4.1 +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 +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 an 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+ubuntu-kind-test + BUILD --pass-args common+test From 779a3d8b71e7ff3ed7b7d0dcae4fcca05be4c399 Mon Sep 17 00:00:00 2001 From: Janis Horsts Date: Sat, 25 Apr 2026 13:29:43 +0100 Subject: [PATCH 2/4] chore: tidy --- CONTRIBUTING.md | 32 ++++++++++++++------------------ 1 file changed, 14 insertions(+), 18 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 33ad939..b8870cb 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -16,24 +16,20 @@ dependencies that will trigger new versions of the dind images such as the docke ## Repo structure -```bash -. -├── Earthfile // Targets that apply to all images (e.g. +test) -├── common -│ └── Earthfile // A library of common helper targets -└── os // Each directory contains an Earthfile with targets to maintain the specific os (e.g. +test, +build) - ├── alpine-3.22 - │ └── Earthfile - ├── alpine-3.23 - │ └── Earthfile - ├── ubuntu-20.04 - │ └── Earthfile - ├── ubuntu-23.04 - │ └── Earthfile - └── ubuntu-24.04 - │ └── Earthfile - └── ubuntu-26.04 - └── Earthfile +```mermaid +graph LR + root["."] --> ef["Earthfile
Targets for all images (e.g. +test)"] + root --> common + root --> os["os/
OS-specific targets (+test, +build)"] + + common --> cef["Earthfile
Common helper targets"] + + os --> a322["alpine-3.22/Earthfile"] + os --> a323["alpine-3.23/Earthfile"] + os --> u2004["ubuntu-20.04/Earthfile"] + os --> u2304["ubuntu-23.04/Earthfile"] + os --> u2404["ubuntu-24.04/Earthfile"] + os --> u2604["ubuntu-26.04/Earthfile"] ``` ## Testing From 1925f527324a94659d7fc232891c80b58c2b6a1f Mon Sep 17 00:00:00 2001 From: Janis Horsts Date: Sat, 25 Apr 2026 13:30:57 +0100 Subject: [PATCH 3/4] chore: tidy --- os/alpine-3.22/Earthfile | 2 +- os/alpine-3.23/Earthfile | 2 +- os/ubuntu-20.04/Earthfile | 2 +- os/ubuntu-23.04/Earthfile | 2 +- os/ubuntu-24.04/Earthfile | 2 +- os/ubuntu-26.04/Earthfile | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/os/alpine-3.22/Earthfile b/os/alpine-3.22/Earthfile index e34517b..e396066 100644 --- a/os/alpine-3.22/Earthfile +++ b/os/alpine-3.22/Earthfile @@ -28,7 +28,7 @@ release: test-build: BUILD --pass-args common+build-and-test --IMAGE_NAME="dindtest" -# build builds an dind image +# build builds a dind image build: BUILD --pass-args --platform=linux/amd64 --platform=linux/arm64 common+build diff --git a/os/alpine-3.23/Earthfile b/os/alpine-3.23/Earthfile index 1f2dd16..3542bfa 100644 --- a/os/alpine-3.23/Earthfile +++ b/os/alpine-3.23/Earthfile @@ -30,7 +30,7 @@ release: test-build: BUILD --pass-args common+build-and-test --IMAGE_NAME="dindtest" -# build builds an dind image +# build builds a dind image build: BUILD --pass-args --platform=linux/amd64 --platform=linux/arm64 common+build diff --git a/os/ubuntu-20.04/Earthfile b/os/ubuntu-20.04/Earthfile index 3eceb34..f32aafd 100644 --- a/os/ubuntu-20.04/Earthfile +++ b/os/ubuntu-20.04/Earthfile @@ -29,7 +29,7 @@ release: test-build: BUILD --pass-args common+build-and-test --IMAGE_NAME="dindtest" -# build builds an dind image +# build builds a dind image build: BUILD --pass-args --platform=linux/amd64 --platform=linux/arm64 common+build diff --git a/os/ubuntu-23.04/Earthfile b/os/ubuntu-23.04/Earthfile index 6fc2133..9da802e 100644 --- a/os/ubuntu-23.04/Earthfile +++ b/os/ubuntu-23.04/Earthfile @@ -29,7 +29,7 @@ release: test-build: BUILD --pass-args common+build-and-test --IMAGE_NAME="dindtest" -# build builds an dind image +# build builds a dind image build: BUILD --pass-args --platform=linux/amd64 --platform=linux/arm64 common+build diff --git a/os/ubuntu-24.04/Earthfile b/os/ubuntu-24.04/Earthfile index 55ce3dd..d8e6602 100644 --- a/os/ubuntu-24.04/Earthfile +++ b/os/ubuntu-24.04/Earthfile @@ -29,7 +29,7 @@ release: test-build: BUILD --pass-args common+build-and-test --IMAGE_NAME="dindtest" -# build builds an dind image +# build builds a dind image build: BUILD --pass-args --platform=linux/amd64 --platform=linux/arm64 common+build diff --git a/os/ubuntu-26.04/Earthfile b/os/ubuntu-26.04/Earthfile index 95590f8..916c951 100644 --- a/os/ubuntu-26.04/Earthfile +++ b/os/ubuntu-26.04/Earthfile @@ -29,7 +29,7 @@ release: test-build: BUILD --pass-args common+build-and-test --IMAGE_NAME="dindtest" -# build builds an dind image +# build builds a dind image build: BUILD --pass-args --platform=linux/amd64 --platform=linux/arm64 common+build From 03372eeff94ae39c04831c23e451f627eecff805 Mon Sep 17 00:00:00 2001 From: Janis Horsts Date: Sat, 25 Apr 2026 13:38:34 +0100 Subject: [PATCH 4/4] chore: tidy --- CONTRIBUTING.md | 32 ++++++++++++++++++-------------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index b8870cb..33ad939 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -16,20 +16,24 @@ dependencies that will trigger new versions of the dind images such as the docke ## Repo structure -```mermaid -graph LR - root["."] --> ef["Earthfile
Targets for all images (e.g. +test)"] - root --> common - root --> os["os/
OS-specific targets (+test, +build)"] - - common --> cef["Earthfile
Common helper targets"] - - os --> a322["alpine-3.22/Earthfile"] - os --> a323["alpine-3.23/Earthfile"] - os --> u2004["ubuntu-20.04/Earthfile"] - os --> u2304["ubuntu-23.04/Earthfile"] - os --> u2404["ubuntu-24.04/Earthfile"] - os --> u2604["ubuntu-26.04/Earthfile"] +```bash +. +├── Earthfile // Targets that apply to all images (e.g. +test) +├── common +│ └── Earthfile // A library of common helper targets +└── os // Each directory contains an Earthfile with targets to maintain the specific os (e.g. +test, +build) + ├── alpine-3.22 + │ └── Earthfile + ├── alpine-3.23 + │ └── Earthfile + ├── ubuntu-20.04 + │ └── Earthfile + ├── ubuntu-23.04 + │ └── Earthfile + └── ubuntu-24.04 + │ └── Earthfile + └── ubuntu-26.04 + └── Earthfile ``` ## Testing