From 1593e70f07c427368a9987d0d8d4a2454f2a1e91 Mon Sep 17 00:00:00 2001 From: Greg Porterfield Date: Thu, 8 Jan 2026 11:32:38 -0700 Subject: [PATCH] feat: Remove unused legacy articulate/articulate-ruby images --- 3.2-bullseye-slim-minimal/Dockerfile | 39 ---------------- 3.2-bullseye-slim-qt/Dockerfile | 52 --------------------- 3.2-bullseye-slim-qt/imagemagick-policy.xml | 32 ------------- 3.2-bullseye-slim/Dockerfile | 51 -------------------- 3.2-bullseye-slim/imagemagick-policy.xml | 32 ------------- README.md | 14 ------ 6 files changed, 220 deletions(-) delete mode 100644 3.2-bullseye-slim-minimal/Dockerfile delete mode 100644 3.2-bullseye-slim-qt/Dockerfile delete mode 100644 3.2-bullseye-slim-qt/imagemagick-policy.xml delete mode 100644 3.2-bullseye-slim/Dockerfile delete mode 100644 3.2-bullseye-slim/imagemagick-policy.xml diff --git a/3.2-bullseye-slim-minimal/Dockerfile b/3.2-bullseye-slim-minimal/Dockerfile deleted file mode 100644 index e41d24a..0000000 --- a/3.2-bullseye-slim-minimal/Dockerfile +++ /dev/null @@ -1,39 +0,0 @@ -# tags=articulate/articulate-ruby:3.2-bullseye-slim-minimal -# syntax=docker/dockerfile:1 -FROM ruby:3.2-slim-bullseye - -ENV SERVICE_ROOT /service -ENV SERVICE_USER service - -ARG TARGETARCH -ARG AWSCLI_VERSION=2.11.15 -ADD --chmod=755 https://github.com/articulate/docker-bootstrap/releases/latest/download/docker-bootstrap_linux_${TARGETARCH} /entrypoint -ADD --chmod=755 https://raw.githubusercontent.com/articulate/docker-bootstrap/main/scripts/docker-secrets /usr/local/bin/secrets -ADD --chmod=755 https://raw.githubusercontent.com/vishnubob/wait-for-it/81b1373f17855a4dc21156cfe1694c31d7d1792e/wait-for-it.sh /wait-for-it.sh - -# libc-bin had some cached files that started causing a segfault in the apt-get update -# Source: https://stackoverflow.com/a/78107622 -RUN rm /var/lib/dpkg/info/libc-bin.* \ - && apt-get clean \ - && apt-get update -qq \ - && apt-get install --no-install-recommends -y \ - libc-bin make git wget curl binutils jq sudo unzip ca-certificates dumb-init \ - && apt-get upgrade -y \ - && apt-get clean \ - && ln -s /entrypoint /entrypoint.sh \ - # AWSCLI (to be removed in a future release) - && curl -s "https://awscli.amazonaws.com/awscli-exe-linux-$(uname -m)-${AWSCLI_VERSION}.zip" -o /tmp/awscliv2.zip \ - && unzip -d /tmp /tmp/awscliv2.zip \ - && /tmp/aws/install \ - # Create our service group and user - && groupadd --gid 1001 $SERVICE_USER \ - && useradd --create-home --home $SERVICE_ROOT --shell /bin/bash --gid 1001 --uid 1001 $SERVICE_USER \ - # Cleanup - && rm -rf /var/lib/apt/lists/* /usr/share/doc /root/.cache/ /tmp/* - -WORKDIR $SERVICE_ROOT - -# Our entrypoint will pull in our environment variables from Consul and Vault -# and execute whatever command we provided the container. -# See https://github.com/articulate/docker-bootstrap -ENTRYPOINT [ "dumb-init", "--", "/entrypoint" ] diff --git a/3.2-bullseye-slim-qt/Dockerfile b/3.2-bullseye-slim-qt/Dockerfile deleted file mode 100644 index ffe29b3..0000000 --- a/3.2-bullseye-slim-qt/Dockerfile +++ /dev/null @@ -1,52 +0,0 @@ -# tags=articulate/articulate-ruby:3.2-bullseye-slim-qt -# syntax=docker/dockerfile:1 -FROM ruby:3.2-slim-bullseye - -ENV SERVICE_ROOT /service -ENV SERVICE_USER service - -ARG TARGETARCH -ARG AWSCLI_VERSION=2.11.15 -ADD --chmod=755 https://github.com/articulate/docker-bootstrap/releases/latest/download/docker-bootstrap_linux_${TARGETARCH} /entrypoint -ADD --chmod=755 https://raw.githubusercontent.com/articulate/docker-bootstrap/main/scripts/docker-secrets /usr/local/bin/secrets -ADD --chmod=755 https://raw.githubusercontent.com/vishnubob/wait-for-it/81b1373f17855a4dc21156cfe1694c31d7d1792e/wait-for-it.sh /wait-for-it.sh -ADD https://deb.nodesource.com/setup_18.x /tmp/setup-node.sh - -# libc-bin had some cached files that started causing a segfault in the apt-get update -# Source: https://stackoverflow.com/a/78107622 - -# - postgresql-client requires the presence of man pages for some reason. Debian-slim doesn't have those by default, so we have to add those as a stub (source: https://github.com/dalibo/temboard/issues/211) -# - we install Imagemagick in our base image so we can keep it updated in one place, and so we can add a strict security policy by default (see further down) -# - We want npm in our base image. To get it, we must install nodejs. There is one in apt-get, but it's super old (version ~4). To get a newer node we must first add the nodesource PPA. -# Source: https://github.com/nodesource/distributions/blob/master/README.md#deb -RUN rm /var/lib/dpkg/info/libc-bin.* \ - && apt-get clean \ - && mkdir -p /usr/share/man/man1 /usr/share/man/man7 \ - && bash /tmp/setup-node.sh \ - && apt-get update -qq \ - && apt-get install --no-install-recommends -y \ - libc-bin build-essential imagemagick git wget curl xvfb binutils jq sudo unzip \ - qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools libqt5webkit5-dev \ - ca-certificates libyaml-dev libpq-dev nodejs postgresql-client dumb-init \ - && apt-get upgrade -y \ - && apt-get clean \ - && ln -s /entrypoint /entrypoint.sh \ - # AWSCLI (to be removed in a future release) - && curl -s "https://awscli.amazonaws.com/awscli-exe-linux-$(uname -m)-${AWSCLI_VERSION}.zip" -o /tmp/awscliv2.zip \ - && unzip -d /tmp /tmp/awscliv2.zip \ - && /tmp/aws/install \ - # Create our service group and user - && groupadd --gid 1001 $SERVICE_USER \ - && useradd --create-home --home $SERVICE_ROOT --shell /bin/bash --gid 1001 --uid 1001 $SERVICE_USER \ - # cleanup - && rm -rf /var/lib/apt/lists/* /usr/share/doc /root/.cache/ /tmp/* - -# Add a strict security policy for Imagemagick -COPY imagemagick-policy.xml /etc/ImageMagick-8/policy.xml - -WORKDIR $SERVICE_ROOT - -# Our entrypoint will pull in our environment variables from Consul and Vault -# and execute whatever command we provided the container. -# See https://github.com/articulate/docker-bootstrap -ENTRYPOINT [ "dumb-init", "--", "/entrypoint" ] diff --git a/3.2-bullseye-slim-qt/imagemagick-policy.xml b/3.2-bullseye-slim-qt/imagemagick-policy.xml deleted file mode 100644 index 0d613bd..0000000 --- a/3.2-bullseye-slim-qt/imagemagick-policy.xml +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/3.2-bullseye-slim/Dockerfile b/3.2-bullseye-slim/Dockerfile deleted file mode 100644 index 0a3bfaa..0000000 --- a/3.2-bullseye-slim/Dockerfile +++ /dev/null @@ -1,51 +0,0 @@ -# tags=articulate/articulate-ruby:3.2-bullseye-slim -# syntax=docker/dockerfile:1 -FROM ruby:3.2-slim-bullseye - -ENV SERVICE_ROOT /service -ENV SERVICE_USER service - -ARG TARGETARCH -ARG AWSCLI_VERSION=2.11.15 -ADD --chmod=755 https://github.com/articulate/docker-bootstrap/releases/latest/download/docker-bootstrap_linux_${TARGETARCH} /entrypoint -ADD --chmod=755 https://raw.githubusercontent.com/articulate/docker-bootstrap/main/scripts/docker-secrets /usr/local/bin/secrets -ADD --chmod=755 https://raw.githubusercontent.com/vishnubob/wait-for-it/81b1373f17855a4dc21156cfe1694c31d7d1792e/wait-for-it.sh /wait-for-it.sh -ADD https://deb.nodesource.com/setup_18.x /tmp/setup-node.sh - -# libc-bin had some cached files that started causing a segfault in the apt-get update -# Source: https://stackoverflow.com/a/78107622 - -# - postgresql-client requires the presence of man pages for some reason. Debian-slim doesn't have those by default, so we have to add those as a stub (source: https://github.com/dalibo/temboard/issues/211) -# - we install Imagemagick in our base image so we can keep it updated in one place, and so we can add a strict security policy by default (see further down) -# - We want npm in our base image. To get it, we must install nodejs. There is one in apt-get, but it's super old (version ~4). To get a newer node we must first add the nodesource PPA. -# Source: https://github.com/nodesource/distributions/blob/master/README.md#deb -RUN rm /var/lib/dpkg/info/libc-bin.* \ - && apt-get clean \ - && mkdir -p /usr/share/man/man1 /usr/share/man/man7 \ - && bash /tmp/setup-node.sh \ - && apt-get update -qq \ - && apt-get install --no-install-recommends -y \ - libc-bin build-essential imagemagick git wget curl binutils jq sudo unzip \ - ca-certificates libyaml-dev libpq-dev nodejs postgresql-client dumb-init \ - && apt-get upgrade -y \ - && apt-get clean \ - && ln -s /entrypoint /entrypoint.sh \ - # AWSCLI (to be removed in a future release) - && curl -s "https://awscli.amazonaws.com/awscli-exe-linux-$(uname -m)-${AWSCLI_VERSION}.zip" -o /tmp/awscliv2.zip \ - && unzip -d /tmp /tmp/awscliv2.zip \ - && /tmp/aws/install \ - # Create our service group and user - && groupadd --gid 1001 $SERVICE_USER \ - && useradd --create-home --home $SERVICE_ROOT --shell /bin/bash --gid 1001 --uid 1001 $SERVICE_USER \ - # cleanup - && rm -rf /var/lib/apt/lists/* /usr/share/doc /root/.cache/ /tmp/* - -# Add a strict security policy for Imagemagick -COPY imagemagick-policy.xml /etc/ImageMagick-8/policy.xml - -WORKDIR $SERVICE_ROOT - -# Our entrypoint will pull in our environment variables from Consul and Vault -# and execute whatever command we provided the container. -# See https://github.com/articulate/docker-bootstrap -ENTRYPOINT [ "dumb-init", "--", "/entrypoint" ] diff --git a/3.2-bullseye-slim/imagemagick-policy.xml b/3.2-bullseye-slim/imagemagick-policy.xml deleted file mode 100644 index 0d613bd..0000000 --- a/3.2-bullseye-slim/imagemagick-policy.xml +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/README.md b/README.md index 910bf87..9a421cd 100644 --- a/README.md +++ b/README.md @@ -24,20 +24,6 @@ Base Ruby images for Articulate services. * articulate/ruby:3.2 * articulate/ruby:3.2-node -Deprecated / Legacy Images - -> Use one of the articulate/ruby images above. - -* articulate/articulate-ruby:3.2-bullseye-slim-minimal -* articulate/articulate-ruby:3.2-bullseye-slim -* articulate/articulate-ruby:3.2-bullseye-slim-qt - -### articulate/ruby vs articulate/articulate-ruby - -`articulate/articulate-ruby` are the legacy Docker images. These run as root and -include additional software not always needed. Use `articulate/ruby` where possible -and install your own software with `install_packages`. - ## Creating a new image The easiest way to create a new image is to copy an existing one and change the