diff --git a/.github/workflows/builder.yml b/.github/workflows/builder.yml index 8b5c1f76..84bcc4d9 100644 --- a/.github/workflows/builder.yml +++ b/.github/workflows/builder.yml @@ -11,7 +11,6 @@ env: ALPINE_LATEST: "3.22" DEBIAN_LATEST: "trixie" UBUNTU_LATEST: "24.04" - RASPBIAN_LATEST: "trixie" PYTHON_LATEST: "3.13" jobs: @@ -22,7 +21,6 @@ jobs: architectures_alpine: ${{ steps.info_alpine.outputs.architectures }} architectures_debian: ${{ steps.info_debian.outputs.architectures }} architectures_ubuntu: ${{ steps.info_ubuntu.outputs.architectures }} - architectures_raspbian: ${{ steps.info_raspbian.outputs.architectures }} release: ${{ steps.version.outputs.version }} steps: - name: Checkout the repository @@ -48,12 +46,6 @@ jobs: with: path: "${{ github.workspace }}/ubuntu" - - name: Get information Raspbian - id: info_raspbian - uses: home-assistant/actions/helpers/info@master - with: - path: "${{ github.workspace }}/raspbian" - - name: Get version id: version uses: home-assistant/actions/helpers/version@master @@ -63,7 +55,7 @@ jobs: build_alpine: name: Build ${{ matrix.arch }} alpine ${{ matrix.version }} base image needs: init - runs-on: *runs-on-ubuntu + runs-on: ${{ matrix.os }} permissions: &permissions contents: read id-token: write @@ -72,6 +64,10 @@ jobs: matrix: arch: ${{ fromJson(needs.init.outputs.architectures_alpine) }} version: ["3.20", "3.21", "3.22"] + include: &matrix-include-build + - os: *runs-on-ubuntu + - arch: aarch64 + os: ubuntu-24.04-arm steps: - &checkout name: Checkout the repository @@ -103,6 +99,7 @@ jobs: - name: Build base image uses: home-assistant/builder@2025.09.0 with: + image: ${{ matrix.arch }} args: | $BUILD_ARGS \ --${{ matrix.arch }} \ @@ -114,12 +111,13 @@ jobs: build_debian: name: Build ${{ matrix.arch }} debian ${{ matrix.version }} base image needs: init - runs-on: *runs-on-ubuntu + runs-on: ${{ matrix.os }} permissions: *permissions strategy: matrix: arch: ${{ fromJson(needs.init.outputs.architectures_debian) }} version: ["bookworm", "trixie"] + include: *matrix-include-build steps: - *checkout - *login-container-registry @@ -141,6 +139,7 @@ jobs: - name: Build base image uses: home-assistant/builder@2025.09.0 with: + image: ${{ matrix.arch }} args: | $BUILD_ARGS \ --${{ matrix.arch }} \ @@ -153,12 +152,13 @@ jobs: build_ubuntu: name: Build ${{ matrix.arch }} ubuntu ${{ matrix.version }} base image needs: init - runs-on: *runs-on-ubuntu + runs-on: ${{ matrix.os }} permissions: *permissions strategy: matrix: arch: ${{ fromJson(needs.init.outputs.architectures_ubuntu) }} version: ["16.04", "18.04", "20.04", "22.04", "24.04"] + include: *matrix-include-build steps: - *checkout - *login-container-registry @@ -180,6 +180,7 @@ jobs: - name: Build base image uses: home-assistant/builder@2025.09.0 with: + image: ${{ matrix.arch }} args: | $BUILD_ARGS \ --${{ matrix.arch }} \ @@ -188,49 +189,10 @@ jobs: --release ${{ needs.init.outputs.release }} \ --base ${{ matrix.version }} - build_raspbian: - name: Build ${{ matrix.arch }} raspbian ${{ matrix.version }} base image - needs: init - runs-on: *runs-on-ubuntu - permissions: *permissions - strategy: - matrix: - arch: ${{ fromJson(needs.init.outputs.architectures_raspbian) }} - version: ["bookworm", "trixie"] - steps: - - *checkout - - *login-container-registry - - - name: Set build arguments - shell: bash - run: | - if [[ "${{ github.event_name }}" == "release" ]]; then - BUILD_ARGS="--additional-tag ${{ matrix.version }}-${{ github.event.release.tag_name }}" - if [[ "${{ env.RASPBIAN_LATEST }}" != "${{ matrix.version }}" ]]; then - BUILD_ARGS="$BUILD_ARGS --no-latest" - fi - else - BUILD_ARGS="--test" - fi - - echo "BUILD_ARGS=$BUILD_ARGS" >> $GITHUB_ENV - - - name: Build base image - uses: home-assistant/builder@2025.09.0 - with: - args: | - $BUILD_ARGS \ - --${{ matrix.arch }} \ - --target /data/raspbian \ - --cosign \ - --release ${{ needs.init.outputs.release }} \ - --version-from ${{ matrix.version }}-slim \ - --base ${{ matrix.version }} - build_python: name: Build ${{ matrix.arch }} alpine ${{ matrix.version }} - python ${{ matrix.python }} base image needs: [init, build_alpine] - runs-on: *runs-on-ubuntu + runs-on: ${{ matrix.os }} permissions: *permissions strategy: fail-fast: false @@ -238,13 +200,7 @@ jobs: arch: ${{ fromJson(needs.init.outputs.architectures_alpine) }} version: ["3.20", "3.21", "3.22"] python: ["3.12", "3.13", "3.14"] - exclude: - - python: "3.14" - arch: "armv7" - - python: "3.14" - arch: "armhf" - - python: "3.14" - arch: "i386" + include: *matrix-include-build steps: - *checkout - *login-container-registry @@ -266,6 +222,7 @@ jobs: - name: Build base image uses: home-assistant/builder@2025.09.0 with: + image: ${{ matrix.arch }} args: | $BUILD_ARGS \ --${{ matrix.arch }} \ diff --git a/README.md b/README.md index 66b76f86..5da4e514 100644 --- a/README.md +++ b/README.md @@ -13,11 +13,8 @@ We support version that are not EOL: https://alpinelinux.org/releases/ | Image | OS | Tags | latest | |-------|----|------|--------| -| armhf-base | Alpine | 3.20, 3.21, 3.22 | 3.22 | -| armv7-base | Alpine | 3.20, 3.21, 3.22 | 3.22 | | aarch64-base | Alpine | 3.20, 3.21, 3.22 | 3.22 | | amd64-base | Alpine | 3.20, 3.21, 3.22 | 3.22 | -| i386-base | Alpine | 3.20, 3.21, 3.22 | 3.22 | ### jemalloc @@ -27,17 +24,10 @@ We support on our platforms jemalloc. On the application which you want to enabl We support the latest 3 release with the latest 3 Alpine version. -> [!NOTE] -> Python 3.14 will only be available on `aarch64` and `amd64` following the deprecation of `armhf`, `armv7` and `i386`. -> See https://www.home-assistant.io/blog/2025/05/22/deprecating-core-and-supervised-installation-methods-and-32-bit-systems/ - | Image | OS | Python versions | Tags | latest | |-------|----|-----------------|------|--------| -| armhf-base-python | Alpine | 3.12, 3.13 | 3.12-alpine3.20, 3.12-alpine3.21, 3.12-alpine3.22, 3.13-alpine3.20, 3.13-alpine3.21, 3.13-alpine3.22 | 3.13-alpine3.22 | -| armv7-base-python | Alpine | 3.12, 3.13 | 3.12-alpine3.20, 3.12-alpine3.21, 3.12-alpine3.22, 3.13-alpine3.20, 3.13-alpine3.21, 3.13-alpine3.22 | 3.13-alpine3.22 | | aarch64-base-python | Alpine | 3.12, 3.13, 3.14 | 3.12-alpine3.20, 3.12-alpine3.21, 3.12-alpine3.22, 3.13-alpine3.20, 3.13-alpine3.21, 3.13-alpine3.22, 3.14-alpine3.20, 3.14-alpine3.21, 3.14-alpine3.22 | 3.13-alpine3.22 | | amd64-base-python | Alpine | 3.12, 3.13, 3.14 | 3.12-alpine3.20, 3.12-alpine3.21, 3.12-alpine3.22, 3.13-alpine3.20, 3.13-alpine3.21, 3.13-alpine3.22, 3.14-alpine3.20, 3.14-alpine3.21, 3.14-alpine3.22 | 3.13-alpine3.22 | -| i386-base-python | Alpine | 3.12, 3.13 | 3.12-alpine3.20, 3.12-alpine3.21, 3.12-alpine3.22, 3.13-alpine3.20, 3.13-alpine3.21, 3.13-alpine3.22 | 3.13-alpine3.22 | ## Others @@ -47,11 +37,8 @@ We support the latest 3 release with the latest 3 Alpine version. | Image | OS | Tags | latest | |-------|----|------|--------| -| armv7-base-debian | Debian | bookworm, trixie | trixie | -| armhf-base-debian | Debian | bookworm, trixie | trixie | | aarch64-base-debian | Debian | bookworm, trixie | trixie | | amd64-base-debian | Debian | bookworm, trixie | trixie | -| i386-base-debian | Debian | bookworm, trixie | trixie | ### Ubuntu images @@ -59,13 +46,5 @@ We support the latest 3 release with the latest 3 Alpine version. | Image | OS | Tags | latest | |-------|----|------|--------| -| armv7-base-ubuntu | Ubuntu | 14.04, 16.04, 18.04, 20.04, 22.04, 24.04 | 24.04 | | aarch64-base-ubuntu | Ubuntu | 14.04, 16.04, 18.04, 20.04, 22.04, 24.04 | 24.04 | | amd64-base-ubuntu | Ubuntu | 14.04, 16.04, 18.04, 20.04, 22.04, 24.04 | 24.04 | -| i386-base-ubuntu | Ubuntu | 14.04, 16.04, 18.04 | | - -### Raspbian images - -| Image | OS | Tags | latest | -|-------|----|------|--------| -| armhf-base-raspbian | Raspbian | bookworm, trixie | trixie | diff --git a/alpine/Dockerfile b/alpine/Dockerfile index a82e54d3..0f1f3168 100644 --- a/alpine/Dockerfile +++ b/alpine/Dockerfile @@ -1,9 +1,6 @@ ARG BUILD_FROM # amd64: alpine:${VERSION} -# i386: i386/alpine:${VERSION} # aarch64: arm64v8/alpine:${VERSION} -# armv7: arm32v7/alpine:${VERSION} -# armhf: arm32v6/alpine:${VERSION} FROM ${BUILD_FROM} @@ -48,11 +45,7 @@ RUN \ autoconf \ git \ \ - && if [ "${BUILD_ARCH}" = "armv7" ]; then \ - export S6_ARCH="arm"; \ - elif [ "${BUILD_ARCH}" = "i386" ]; then \ - export S6_ARCH="i686"; \ - elif [ "${BUILD_ARCH}" = "amd64" ]; then \ + && if [ "${BUILD_ARCH}" = "amd64" ]; then \ export S6_ARCH="x86_64"; \ else \ export S6_ARCH="${BUILD_ARCH}"; \ diff --git a/alpine/build.yaml b/alpine/build.yaml index 41847a69..809c6536 100644 --- a/alpine/build.yaml +++ b/alpine/build.yaml @@ -1,10 +1,7 @@ image: ghcr.io/home-assistant/{arch}-base build_from: aarch64: "arm64v8/alpine:" - armv7: "arm32v7/alpine:" - armhf: "arm32v6/alpine:" amd64: "alpine:" - i386: "i386/alpine:" cosign: identity: https://github.com/home-assistant/docker-base/.* args: diff --git a/debian/Dockerfile b/debian/Dockerfile index 78ecf3c9..3bdcd021 100644 --- a/debian/Dockerfile +++ b/debian/Dockerfile @@ -1,9 +1,6 @@ ARG BUILD_FROM # amd64: debian:${VERSION}-slim -# i386: i386/debian:${VERSION}-slim # aarch64: arm64v8/debian:${VERSION}-slim -# armv7: arm32v7/debian:${VERSION}-slim -# armhf: arm32v5/debian:${VERSION}-slim FROM ${BUILD_FROM} @@ -42,11 +39,7 @@ RUN \ xz-utils \ && mkdir -p /usr/share/man/man1 \ \ - && if [ "${BUILD_ARCH}" = "armv7" ]; then \ - export S6_ARCH="arm"; \ - elif [ "${BUILD_ARCH}" = "i386" ]; then \ - export S6_ARCH="i686"; \ - elif [ "${BUILD_ARCH}" = "amd64" ]; then \ + && if [ "${BUILD_ARCH}" = "amd64" ]; then \ export S6_ARCH="x86_64"; \ else \ export S6_ARCH="${BUILD_ARCH}"; \ diff --git a/debian/build.yaml b/debian/build.yaml index 2f33df55..ffae78b5 100644 --- a/debian/build.yaml +++ b/debian/build.yaml @@ -1,10 +1,7 @@ image: ghcr.io/home-assistant/{arch}-base-debian build_from: aarch64: "arm64v8/debian:" - armv7: "arm32v7/debian:" - armhf: "arm32v5/debian:" amd64: "debian:" - i386: "i386/debian:" cosign: identity: https://github.com/home-assistant/docker-base/.* args: diff --git a/python/3.12/build.yaml b/python/3.12/build.yaml index 9bf5aaa7..955e94cd 100644 --- a/python/3.12/build.yaml +++ b/python/3.12/build.yaml @@ -1,10 +1,7 @@ image: ghcr.io/home-assistant/{arch}-base-python build_from: aarch64: "ghcr.io/home-assistant/aarch64-base:" - armv7: "ghcr.io/home-assistant/armv7-base:" - armhf: "ghcr.io/home-assistant/armhf-base:" amd64: "ghcr.io/home-assistant/amd64-base:" - i386: "ghcr.io/home-assistant/i386-base:" cosign: base_identity: https://github.com/home-assistant/docker-base/.* identity: https://github.com/home-assistant/docker-base/.* diff --git a/python/3.13/build.yaml b/python/3.13/build.yaml index b71d1191..0a91ec6d 100644 --- a/python/3.13/build.yaml +++ b/python/3.13/build.yaml @@ -1,10 +1,7 @@ image: ghcr.io/home-assistant/{arch}-base-python build_from: aarch64: "ghcr.io/home-assistant/aarch64-base:" - armv7: "ghcr.io/home-assistant/armv7-base:" - armhf: "ghcr.io/home-assistant/armhf-base:" amd64: "ghcr.io/home-assistant/amd64-base:" - i386: "ghcr.io/home-assistant/i386-base:" cosign: base_identity: https://github.com/home-assistant/docker-base/.* identity: https://github.com/home-assistant/docker-base/.* diff --git a/python/3.14/build.yaml b/python/3.14/build.yaml index 000abf6a..b1d5fdda 100644 --- a/python/3.14/build.yaml +++ b/python/3.14/build.yaml @@ -1,10 +1,7 @@ image: ghcr.io/home-assistant/{arch}-base-python build_from: aarch64: "ghcr.io/home-assistant/aarch64-base:" - armv7: "ghcr.io/home-assistant/armv7-base:" - armhf: "ghcr.io/home-assistant/armhf-base:" amd64: "ghcr.io/home-assistant/amd64-base:" - i386: "ghcr.io/home-assistant/i386-base:" cosign: base_identity: https://github.com/home-assistant/docker-base/.* identity: https://github.com/home-assistant/docker-base/.* diff --git a/raspbian/Dockerfile b/raspbian/Dockerfile deleted file mode 100644 index b2080476..00000000 --- a/raspbian/Dockerfile +++ /dev/null @@ -1,65 +0,0 @@ -ARG BUILD_FROM -# armhf: tianon/raspbian:${VERSION}-slim - -FROM ${BUILD_FROM} - -# Default ENV -ENV \ - LANG="C.UTF-8" \ - DEBIAN_FRONTEND="noninteractive" \ - CURL_CA_BUNDLE="/etc/ssl/certs/ca-certificates.crt" \ - S6_BEHAVIOUR_IF_STAGE2_FAILS=2 \ - S6_CMD_WAIT_FOR_SERVICES_MAXTIME=0 \ - S6_CMD_WAIT_FOR_SERVICES=1 \ - S6_SERVICES_READYTIME=50 - -# Set shell -SHELL ["/bin/bash", "-o", "pipefail", "-c"] - -# Build Args -ARG \ - BASHIO_VERSION \ - TEMPIO_VERSION \ - S6_OVERLAY_VERSION \ - QEMU_CPU - -# Base system -WORKDIR /usr/src - -RUN \ - set -x \ - && apt-get update && apt-get install -y --no-install-recommends \ - bash \ - jq \ - tzdata \ - curl \ - ca-certificates \ - xz-utils \ - \ - && curl -L -f -s "https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}/s6-overlay-armhf.tar.xz" \ - | tar Jxvf - -C / \ - && curl -L -f -s "https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}/s6-overlay-noarch.tar.xz" \ - | tar Jxvf - -C / \ - && curl -L -f -s "https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}/s6-overlay-symlinks-arch.tar.xz" \ - | tar Jxvf - -C / \ - && curl -L -f -s "https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}/s6-overlay-symlinks-noarch.tar.xz" \ - | tar Jxvf - -C / \ - && mkdir -p /etc/fix-attrs.d \ - && mkdir -p /etc/services.d \ - \ - && curl -L -f -s -o /usr/bin/tempio \ - "https://github.com/home-assistant/tempio/releases/download/${TEMPIO_VERSION}/tempio_armhf" \ - && chmod a+x /usr/bin/tempio \ - \ - && mkdir -p /usr/src/bashio \ - && curl -L -f -s "https://github.com/hassio-addons/bashio/archive/v${BASHIO_VERSION}.tar.gz" \ - | tar -xzf - --strip 1 -C /usr/src/bashio \ - && mv /usr/src/bashio/lib /usr/lib/bashio \ - && ln -s /usr/lib/bashio/bashio /usr/bin/bashio \ - \ - && rm -rf /var/lib/apt/lists/* \ - && rm -rf /usr/src/* - -# S6-Overlay -WORKDIR / -ENTRYPOINT ["/init"] diff --git a/raspbian/build.yaml b/raspbian/build.yaml deleted file mode 100644 index 3855a931..00000000 --- a/raspbian/build.yaml +++ /dev/null @@ -1,12 +0,0 @@ -image: ghcr.io/home-assistant/{arch}-base-raspbian -build_from: - armhf: "tianon/raspbian:" -cosign: - identity: https://github.com/home-assistant/docker-base/.* -args: - BASHIO_VERSION: 0.17.5 - TEMPIO_VERSION: 2024.11.2 - S6_OVERLAY_VERSION: 3.1.6.2 -labels: - io.hass.base.name: raspbian - org.opencontainers.image.source: https://github.com/home-assistant/docker-base diff --git a/ubuntu/Dockerfile b/ubuntu/Dockerfile index 568803fe..f97fb4d3 100644 --- a/ubuntu/Dockerfile +++ b/ubuntu/Dockerfile @@ -1,8 +1,6 @@ ARG BUILD_FROM # amd64: ubuntu:${VERSION} -# i386: i386/ubuntu:${VERSION} # aarch64: arm64v8/ubuntu:${VERSION} -# armv7: arm32v7/ubuntu:${VERSION} FROM ${BUILD_FROM} @@ -38,11 +36,7 @@ RUN \ ca-certificates \ xz-utils \ \ - && if [ "${BUILD_ARCH}" = "armv7" ]; then \ - export S6_ARCH="arm"; \ - elif [ "${BUILD_ARCH}" = "i386" ]; then \ - export S6_ARCH="i686"; \ - elif [ "${BUILD_ARCH}" = "amd64" ]; then \ + && if [ "${BUILD_ARCH}" = "amd64" ]; then \ export S6_ARCH="x86_64"; \ else \ export S6_ARCH="${BUILD_ARCH}"; \ diff --git a/ubuntu/build.yaml b/ubuntu/build.yaml index ba050631..558c92e4 100644 --- a/ubuntu/build.yaml +++ b/ubuntu/build.yaml @@ -1,7 +1,6 @@ image: ghcr.io/home-assistant/{arch}-base-ubuntu build_from: aarch64: "arm64v8/ubuntu:" - armv7: "arm32v7/ubuntu:" amd64: "ubuntu:" cosign: identity: https://github.com/home-assistant/docker-base/.*