diff --git a/.github/workflows/buildx.yml b/.github/workflows/buildx.yml index 7299c8d..0cd9f4b 100644 --- a/.github/workflows/buildx.yml +++ b/.github/workflows/buildx.yml @@ -14,7 +14,7 @@ jobs: strategy: fail-fast: false matrix: - ruby-version: [3.2, 3.3, 3.4] + ruby-version: [3.2, 3.3, 3.4, 3.5] node-version: [20, 22] variant: [default, slim, alpine] include: diff --git a/.github/workflows/dockerimage.yml b/.github/workflows/dockerimage.yml index 33b2e83..7c9cb84 100644 --- a/.github/workflows/dockerimage.yml +++ b/.github/workflows/dockerimage.yml @@ -13,7 +13,7 @@ jobs: strategy: fail-fast: false matrix: - ruby-version: [3.2, 3.3, 3.4] + ruby-version: [3.2, 3.3, 3.4, 3.5] node-version: [20, 22] variant: [default, slim, alpine] diff --git a/.github/workflows/hadolint.yml b/.github/workflows/hadolint.yml index e885cce..f1bbf4f 100644 --- a/.github/workflows/hadolint.yml +++ b/.github/workflows/hadolint.yml @@ -15,5 +15,5 @@ jobs: - run: brew install hadolint - run: | - hadolint {3.2,3.3,3.4}/**/*Dockerfile - hadolint {3.2,3.3,3.4}/**/**/*Dockerfile + hadolint {3.2,3.3,3.4,3.5}/**/*Dockerfile + hadolint {3.2,3.3,3.4,3.5}/**/**/*Dockerfile diff --git a/3.5/20/Dockerfile b/3.5/20/Dockerfile new file mode 100644 index 0000000..2e61058 --- /dev/null +++ b/3.5/20/Dockerfile @@ -0,0 +1,19 @@ +FROM ruby:3.5-rc +LABEL maintainer "Tim Brust " + +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.5/20/alpine/Dockerfile b/3.5/20/alpine/Dockerfile new file mode 100644 index 0000000..764de93 --- /dev/null +++ b/3.5/20/alpine/Dockerfile @@ -0,0 +1,14 @@ +FROM ruby:3.5-rc-alpine +LABEL maintainer "Tim Brust " + +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.5/20/slim/Dockerfile b/3.5/20/slim/Dockerfile new file mode 100644 index 0000000..a938990 --- /dev/null +++ b/3.5/20/slim/Dockerfile @@ -0,0 +1,25 @@ +FROM ruby:3.5-rc-slim +LABEL maintainer "Tim Brust " + +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.5/22/Dockerfile b/3.5/22/Dockerfile new file mode 100644 index 0000000..e47b206 --- /dev/null +++ b/3.5/22/Dockerfile @@ -0,0 +1,19 @@ +FROM ruby:3.5-rc +LABEL maintainer "Tim Brust " + +ARG REFRESHED_AT +ENV REFRESHED_AT $REFRESHED_AT +ARG NODE_MAJOR=22 + +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.5/22/alpine/Dockerfile b/3.5/22/alpine/Dockerfile new file mode 100644 index 0000000..1e52fac --- /dev/null +++ b/3.5/22/alpine/Dockerfile @@ -0,0 +1,11 @@ +FROM ruby:3.5-rc-alpine +LABEL maintainer "Tim Brust " + +ARG REFRESHED_AT +ENV REFRESHED_AT $REFRESHED_AT + +RUN apk -U upgrade \ + && apk add --no-cache \ + nodejs \ + npm \ + yarn diff --git a/3.5/22/slim/Dockerfile b/3.5/22/slim/Dockerfile new file mode 100644 index 0000000..ef77840 --- /dev/null +++ b/3.5/22/slim/Dockerfile @@ -0,0 +1,25 @@ +FROM ruby:3.5-rc +LABEL maintainer "Tim Brust " + +ARG REFRESHED_AT +ENV REFRESHED_AT $REFRESHED_AT +ARG NODE_MAJOR=22 + +# 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 93fa363..78eb8be 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,14 @@ -# Ruby 3.2, 3.3 or 3.4 with Node.js 20 LTS or Node.js 22 Dockerfile +# Ruby 3.2, 3.3, 3.4, 3.5 (RC) with Node.js 20 LTS or Node.js 22 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 or 3.4) Dockerfile (regular, slim or alpine) with Node.js 20 LTS (Iron) or Node.js 22 LTS (Jod) installed. +A minimal Dockerfile based on Ruby (3.2, 3.3, 3.4 or 3.5 (RC)) Dockerfile (regular, slim or alpine) with Node.js 20 LTS (Iron) or Node.js 22 LTS (Jod) installed. ## What's included -- Ruby 3.2, 3.3, 3.4 +- Ruby 3.2, 3.3, 3.4, 3.5 (RC) - Node.js 20 LTS (Iron) or Node.js 22 LTS (Jod) - 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