From 807b3415011a3f72435019d181800157b86d7943 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim=20Pr=C3=BCssing?= Date: Tue, 28 Apr 2026 12:19:05 +0200 Subject: [PATCH] refactor!: drop Node.js 20 support (EOL) --- .github/workflows/buildx.yml | 3 +-- .github/workflows/dockerimage.yml | 2 +- 3.2/20/Dockerfile | 19 ------------------- 3.2/20/alpine/Dockerfile | 14 -------------- 3.2/20/slim/Dockerfile | 25 ------------------------- 3.3/20/Dockerfile | 19 ------------------- 3.3/20/alpine/Dockerfile | 14 -------------- 3.3/20/slim/Dockerfile | 25 ------------------------- 3.4/20/Dockerfile | 19 ------------------- 3.4/20/alpine/Dockerfile | 14 -------------- 3.4/20/slim/Dockerfile | 25 ------------------------- 4.0/20/Dockerfile | 19 ------------------- 4.0/20/alpine/Dockerfile | 14 -------------- 4.0/20/slim/Dockerfile | 25 ------------------------- README.md | 6 +++--- 15 files changed, 5 insertions(+), 238 deletions(-) delete mode 100644 3.2/20/Dockerfile delete mode 100644 3.2/20/alpine/Dockerfile delete mode 100644 3.2/20/slim/Dockerfile delete mode 100644 3.3/20/Dockerfile delete mode 100644 3.3/20/alpine/Dockerfile delete mode 100644 3.3/20/slim/Dockerfile delete mode 100644 3.4/20/Dockerfile delete mode 100644 3.4/20/alpine/Dockerfile delete mode 100644 3.4/20/slim/Dockerfile delete mode 100644 4.0/20/Dockerfile delete mode 100644 4.0/20/alpine/Dockerfile delete mode 100644 4.0/20/slim/Dockerfile diff --git a/.github/workflows/buildx.yml b/.github/workflows/buildx.yml index b658ad6..22e030e 100644 --- a/.github/workflows/buildx.yml +++ b/.github/workflows/buildx.yml @@ -15,7 +15,7 @@ jobs: fail-fast: false matrix: ruby-version: ["3.2", "3.3", "3.4", "4.0"] - node-version: [20, 22, 24] + node-version: [22, 24] variant: [default, slim, alpine] include: - variant: default @@ -32,7 +32,6 @@ jobs: id: nodename run: | case "${{ matrix.node-version }}" in - "20") echo "codename=iron" >> $GITHUB_OUTPUT ;; "22") echo "codename=jod" >> $GITHUB_OUTPUT ;; "24") echo "codename=krypton" >> $GITHUB_OUTPUT ;; "26") echo "codename=lithium" >> $GITHUB_OUTPUT ;; diff --git a/.github/workflows/dockerimage.yml b/.github/workflows/dockerimage.yml index c60be1d..877def2 100644 --- a/.github/workflows/dockerimage.yml +++ b/.github/workflows/dockerimage.yml @@ -14,7 +14,7 @@ jobs: fail-fast: false matrix: ruby-version: ["3.2", "3.3", "3.4", "4.0"] - node-version: [20, 22, 24] + node-version: [22, 24] variant: [default, slim, alpine] steps: diff --git a/3.2/20/Dockerfile b/3.2/20/Dockerfile deleted file mode 100644 index e042a1d..0000000 --- a/3.2/20/Dockerfile +++ /dev/null @@ -1,19 +0,0 @@ -FROM ruby:3.2 -LABEL maintainer="Tim Prüssing " - -ARG REFRESHED_AT -ENV REFRESHED_AT=$REFRESHED_AT -ARG NODE_MAJOR=20 - -SHELL ["/bin/bash", "-o", "pipefail", "-c"] - -RUN printf 'Package: nodejs\nPin: origin deb.nodesource.com\nPin-Priority: 1001' > /etc/apt/preferences.d/nodesource \ - && mkdir -p /etc/apt/keyrings \ - && curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg \ - && echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | tee /etc/apt/sources.list.d/nodesource.list \ - && apt-get update -qq && apt-get install -qq --no-install-recommends \ - nodejs \ - && apt-get upgrade -qq \ - && apt-get clean \ - && rm -rf /var/lib/apt/lists/*\ - && npm install -g yarn@1 diff --git a/3.2/20/alpine/Dockerfile b/3.2/20/alpine/Dockerfile deleted file mode 100644 index 4a21f16..0000000 --- a/3.2/20/alpine/Dockerfile +++ /dev/null @@ -1,14 +0,0 @@ -FROM ruby:3.2-alpine -LABEL maintainer="Tim Prüssing " - -ARG REFRESHED_AT -ENV REFRESHED_AT=$REFRESHED_AT - -RUN echo @old-stable https://dl-cdn.alpinelinux.org/alpine/v3.20/community >> /etc/apk/repositories \ - && echo @old-stable https://dl-cdn.alpinelinux.org/alpine/v3.20/main >> /etc/apk/repositories \ - && apk -U upgrade \ - && apk add --no-cache \ - ada-libs@old-stable \ - nodejs@old-stable \ - npm@old-stable \ - yarn diff --git a/3.2/20/slim/Dockerfile b/3.2/20/slim/Dockerfile deleted file mode 100644 index d19ba31..0000000 --- a/3.2/20/slim/Dockerfile +++ /dev/null @@ -1,25 +0,0 @@ -FROM ruby:3.2-slim -LABEL maintainer="Tim Prüssing " - -ARG REFRESHED_AT -ENV REFRESHED_AT=$REFRESHED_AT -ARG NODE_MAJOR=20 - -# hadolint ignore=DL3009 -RUN apt-get update -qq && apt-get install -qq --no-install-recommends \ - curl \ - gnupg2 \ - libatomic1 - -SHELL ["/bin/bash", "-o", "pipefail", "-c"] - -RUN printf 'Package: nodejs\nPin: origin deb.nodesource.com\nPin-Priority: 1001' > /etc/apt/preferences.d/nodesource \ - && mkdir -p /etc/apt/keyrings \ - && curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg \ - && echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | tee /etc/apt/sources.list.d/nodesource.list \ - && apt-get update -qq && apt-get install -qq --no-install-recommends \ - nodejs \ - && apt-get upgrade -qq \ - && apt-get clean \ - && rm -rf /var/lib/apt/lists/*\ - && npm install -g yarn@1 diff --git a/3.3/20/Dockerfile b/3.3/20/Dockerfile deleted file mode 100644 index 90afe55..0000000 --- a/3.3/20/Dockerfile +++ /dev/null @@ -1,19 +0,0 @@ -FROM ruby:3.3 -LABEL maintainer="Tim Prüssing " - -ARG REFRESHED_AT -ENV REFRESHED_AT=$REFRESHED_AT -ARG NODE_MAJOR=20 - -SHELL ["/bin/bash", "-o", "pipefail", "-c"] - -RUN printf 'Package: nodejs\nPin: origin deb.nodesource.com\nPin-Priority: 1001' > /etc/apt/preferences.d/nodesource \ - && mkdir -p /etc/apt/keyrings \ - && curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg \ - && echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | tee /etc/apt/sources.list.d/nodesource.list \ - && apt-get update -qq && apt-get install -qq --no-install-recommends \ - nodejs \ - && apt-get upgrade -qq \ - && apt-get clean \ - && rm -rf /var/lib/apt/lists/*\ - && npm install -g yarn@1 diff --git a/3.3/20/alpine/Dockerfile b/3.3/20/alpine/Dockerfile deleted file mode 100644 index 168c436..0000000 --- a/3.3/20/alpine/Dockerfile +++ /dev/null @@ -1,14 +0,0 @@ -FROM ruby:3.3-alpine -LABEL maintainer="Tim Prüssing " - -ARG REFRESHED_AT -ENV REFRESHED_AT=$REFRESHED_AT - -RUN echo @old-stable https://dl-cdn.alpinelinux.org/alpine/v3.20/community >> /etc/apk/repositories \ - && echo @old-stable https://dl-cdn.alpinelinux.org/alpine/v3.20/main >> /etc/apk/repositories \ - && apk -U upgrade \ - && apk add --no-cache \ - ada-libs@old-stable \ - nodejs@old-stable \ - npm@old-stable \ - yarn diff --git a/3.3/20/slim/Dockerfile b/3.3/20/slim/Dockerfile deleted file mode 100644 index 3d9b48a..0000000 --- a/3.3/20/slim/Dockerfile +++ /dev/null @@ -1,25 +0,0 @@ -FROM ruby:3.3-slim -LABEL maintainer="Tim Prüssing " - -ARG REFRESHED_AT -ENV REFRESHED_AT=$REFRESHED_AT -ARG NODE_MAJOR=20 - -# hadolint ignore=DL3009 -RUN apt-get update -qq && apt-get install -qq --no-install-recommends \ - curl \ - gnupg2 \ - libatomic1 - -SHELL ["/bin/bash", "-o", "pipefail", "-c"] - -RUN printf 'Package: nodejs\nPin: origin deb.nodesource.com\nPin-Priority: 1001' > /etc/apt/preferences.d/nodesource \ - && mkdir -p /etc/apt/keyrings \ - && curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg \ - && echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | tee /etc/apt/sources.list.d/nodesource.list \ - && apt-get update -qq && apt-get install -qq --no-install-recommends \ - nodejs \ - && apt-get upgrade -qq \ - && apt-get clean \ - && rm -rf /var/lib/apt/lists/*\ - && npm install -g yarn@1 diff --git a/3.4/20/Dockerfile b/3.4/20/Dockerfile deleted file mode 100644 index fcd2754..0000000 --- a/3.4/20/Dockerfile +++ /dev/null @@ -1,19 +0,0 @@ -FROM ruby:3.4 -LABEL maintainer="Tim Prüssing " - -ARG REFRESHED_AT -ENV REFRESHED_AT=$REFRESHED_AT -ARG NODE_MAJOR=20 - -SHELL ["/bin/bash", "-o", "pipefail", "-c"] - -RUN printf 'Package: nodejs\nPin: origin deb.nodesource.com\nPin-Priority: 1001' > /etc/apt/preferences.d/nodesource \ - && mkdir -p /etc/apt/keyrings \ - && curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg \ - && echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | tee /etc/apt/sources.list.d/nodesource.list \ - && apt-get update -qq && apt-get install -qq --no-install-recommends \ - nodejs \ - && apt-get upgrade -qq \ - && apt-get clean \ - && rm -rf /var/lib/apt/lists/*\ - && npm install -g yarn@1 diff --git a/3.4/20/alpine/Dockerfile b/3.4/20/alpine/Dockerfile deleted file mode 100644 index b2009ff..0000000 --- a/3.4/20/alpine/Dockerfile +++ /dev/null @@ -1,14 +0,0 @@ -FROM ruby:3.4-alpine -LABEL maintainer="Tim Prüssing " - -ARG REFRESHED_AT -ENV REFRESHED_AT=$REFRESHED_AT - -RUN echo @old-stable https://dl-cdn.alpinelinux.org/alpine/v3.20/community >> /etc/apk/repositories \ - && echo @old-stable https://dl-cdn.alpinelinux.org/alpine/v3.20/main >> /etc/apk/repositories \ - && apk -U upgrade \ - && apk add --no-cache \ - ada-libs@old-stable \ - nodejs@old-stable \ - npm@old-stable \ - yarn diff --git a/3.4/20/slim/Dockerfile b/3.4/20/slim/Dockerfile deleted file mode 100644 index 1e013c7..0000000 --- a/3.4/20/slim/Dockerfile +++ /dev/null @@ -1,25 +0,0 @@ -FROM ruby:3.4-slim -LABEL maintainer="Tim Prüssing " - -ARG REFRESHED_AT -ENV REFRESHED_AT=$REFRESHED_AT -ARG NODE_MAJOR=20 - -# hadolint ignore=DL3009 -RUN apt-get update -qq && apt-get install -qq --no-install-recommends \ - curl \ - gnupg2 \ - libatomic1 - -SHELL ["/bin/bash", "-o", "pipefail", "-c"] - -RUN printf 'Package: nodejs\nPin: origin deb.nodesource.com\nPin-Priority: 1001' > /etc/apt/preferences.d/nodesource \ - && mkdir -p /etc/apt/keyrings \ - && curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg \ - && echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | tee /etc/apt/sources.list.d/nodesource.list \ - && apt-get update -qq && apt-get install -qq --no-install-recommends \ - nodejs \ - && apt-get upgrade -qq \ - && apt-get clean \ - && rm -rf /var/lib/apt/lists/*\ - && npm install -g yarn@1 diff --git a/4.0/20/Dockerfile b/4.0/20/Dockerfile deleted file mode 100644 index 7e92c85..0000000 --- a/4.0/20/Dockerfile +++ /dev/null @@ -1,19 +0,0 @@ -FROM ruby:4.0 -LABEL maintainer="Tim Prüssing " - -ARG REFRESHED_AT -ENV REFRESHED_AT=$REFRESHED_AT -ARG NODE_MAJOR=20 - -SHELL ["/bin/bash", "-o", "pipefail", "-c"] - -RUN printf 'Package: nodejs\nPin: origin deb.nodesource.com\nPin-Priority: 1001' > /etc/apt/preferences.d/nodesource \ - && mkdir -p /etc/apt/keyrings \ - && curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg \ - && echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | tee /etc/apt/sources.list.d/nodesource.list \ - && apt-get update -qq && apt-get install -qq --no-install-recommends \ - nodejs \ - && apt-get upgrade -qq \ - && apt-get clean \ - && rm -rf /var/lib/apt/lists/*\ - && npm install -g yarn@1 diff --git a/4.0/20/alpine/Dockerfile b/4.0/20/alpine/Dockerfile deleted file mode 100644 index 53d6cf6..0000000 --- a/4.0/20/alpine/Dockerfile +++ /dev/null @@ -1,14 +0,0 @@ -FROM ruby:4.0-alpine -LABEL maintainer="Tim Prüssing " - -ARG REFRESHED_AT -ENV REFRESHED_AT=$REFRESHED_AT - -RUN echo @old-stable https://dl-cdn.alpinelinux.org/alpine/v3.20/community >> /etc/apk/repositories \ - && echo @old-stable https://dl-cdn.alpinelinux.org/alpine/v3.20/main >> /etc/apk/repositories \ - && apk -U upgrade \ - && apk add --no-cache \ - ada-libs@old-stable \ - nodejs@old-stable \ - npm@old-stable \ - yarn diff --git a/4.0/20/slim/Dockerfile b/4.0/20/slim/Dockerfile deleted file mode 100644 index 0d0b3d6..0000000 --- a/4.0/20/slim/Dockerfile +++ /dev/null @@ -1,25 +0,0 @@ -FROM ruby:4.0-slim -LABEL maintainer="Tim Prüssing " - -ARG REFRESHED_AT -ENV REFRESHED_AT=$REFRESHED_AT -ARG NODE_MAJOR=20 - -# hadolint ignore=DL3009 -RUN apt-get update -qq && apt-get install -qq --no-install-recommends \ - curl \ - gnupg2 \ - libatomic1 - -SHELL ["/bin/bash", "-o", "pipefail", "-c"] - -RUN printf 'Package: nodejs\nPin: origin deb.nodesource.com\nPin-Priority: 1001' > /etc/apt/preferences.d/nodesource \ - && mkdir -p /etc/apt/keyrings \ - && curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg \ - && echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | tee /etc/apt/sources.list.d/nodesource.list \ - && apt-get update -qq && apt-get install -qq --no-install-recommends \ - nodejs \ - && apt-get upgrade -qq \ - && apt-get clean \ - && rm -rf /var/lib/apt/lists/*\ - && npm install -g yarn@1 diff --git a/README.md b/README.md index 6505533..92a5421 100644 --- a/README.md +++ b/README.md @@ -1,15 +1,15 @@ -# Ruby 3.2, 3.3, 3.4, 4.0 with Node.js 20 LTS, Node.js 22 LTS or Node.js 24 LTS Dockerfile +# Ruby 3.2, 3.3, 3.4, 4.0 with Node.js 22 LTS or Node.js 24 LTS Dockerfile [![Docker Automated build](https://img.shields.io/docker/automated/timbru31/ruby-node.svg)](https://hub.docker.com/r/timbru31/ruby-node/) [![buildx Status](https://github.com/timbru31/docker-ruby-node/workflows/buildx/badge.svg)](https://github.com/timbru31/docker-ruby-node/actions?query=workflow%3Abuildx) [![Lint Dockerfiles](https://github.com/timbru31/docker-ruby-node/workflows/Lint%20Dockerfiles/badge.svg)](https://github.com/timbru31/docker-ruby-node/actions?query=workflow%3A%22Lint+Dockerfiles%22) -A minimal Dockerfile based on Ruby (3.2, 3.3, 3.4 or 4.0) Dockerfile (regular, slim or alpine) with Node.js 20 LTS (Iron), Node.js 22 LTS (Jod) or Node.js 24 LTS (Krypton) installed. +A minimal Dockerfile based on Ruby (3.2, 3.3, 3.4 or 4.0) Dockerfile (regular, slim or alpine) with Node.js 22 LTS (Jod) or Node.js 24 LTS (Krypton) installed. ## What's included - Ruby 3.2, 3.3, 3.4, 4.0 -- Node.js 20 LTS (Iron), Node.js 22 LTS (Jod) or Node.js 24 LTS (Krypton) +- Node.js 22 LTS (Jod) or Node.js 24 LTS (Krypton) - bundled npm that comes with the respective Node.js version (latest for Node.js LTS on alpine, see [why](https://gitlab.alpinelinux.org/alpine/aports/-/commit/25b10bd1a93e12a7e49fee38b0a229281ae49fb7)) - yarn