From: Maksym Sobolyev Date: Mon, 3 Mar 2025 19:13:05 +0000 (-0800) Subject: test: Refresh dockerfiles and add Debian 12 (#1538) X-Git-Tag: v4.11~7 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=20ec93a6e1d98e72967ccee5b5fc1641b229babf;p=thirdparty%2Fccache.git test: Refresh dockerfiles and add Debian 12 (#1538) - Make gcc package name configurable, this is to fix "E: Package 'gcc-multilib' has no installation candidate" on non-x86. - Allow BASE_IMAGE to be overridden. - Add Debian 12. --- diff --git a/dockerfiles/alpine-3.11/Dockerfile b/dockerfiles/alpine-3.11/Dockerfile index 7bc1d29f3..8bc04cb38 100644 --- a/dockerfiles/alpine-3.11/Dockerfile +++ b/dockerfiles/alpine-3.11/Dockerfile @@ -1,4 +1,5 @@ -FROM alpine:3.11 +ARG BASE_IMAGE=alpine:3.11 +FROM ${BASE_IMAGE} AS build RUN apk add --no-cache \ bash \ diff --git a/dockerfiles/alpine-3.15/Dockerfile b/dockerfiles/alpine-3.15/Dockerfile index b97b38c62..ff3d4c167 100644 --- a/dockerfiles/alpine-3.15/Dockerfile +++ b/dockerfiles/alpine-3.15/Dockerfile @@ -1,4 +1,5 @@ -FROM alpine:3.15 +ARG BASE_IMAGE=alpine:3.15 +FROM ${BASE_IMAGE} AS build RUN apk add --no-cache \ bash \ diff --git a/dockerfiles/debian-11/Dockerfile b/dockerfiles/debian-11/Dockerfile index ce7db7be2..bf71f493b 100644 --- a/dockerfiles/debian-11/Dockerfile +++ b/dockerfiles/debian-11/Dockerfile @@ -1,5 +1,7 @@ -FROM debian:11 +ARG BASE_IMAGE=debian:11 +FROM ${BASE_IMAGE} AS build +ARG GCC_APT="gcc-multilib" RUN apt-get update \ && apt-get install -y --no-install-recommends \ bash \ @@ -8,7 +10,7 @@ RUN apt-get update \ clang \ cmake \ elfutils \ - gcc-multilib \ + ${GCC_APT} \ libhiredis-dev \ libzstd-dev \ python3 \ diff --git a/dockerfiles/debian-12/Dockerfile b/dockerfiles/debian-12/Dockerfile new file mode 100644 index 000000000..9f6ebf974 --- /dev/null +++ b/dockerfiles/debian-12/Dockerfile @@ -0,0 +1,21 @@ +ARG BASE_IMAGE=debian:12 +FROM ${BASE_IMAGE} AS build + +RUN apt-get update \ + && apt-get install -y --no-install-recommends \ + bash \ + build-essential \ + ccache \ + clang \ + cmake \ + elfutils \ + gcc \ + libhiredis-dev \ + libzstd-dev \ + python3 \ + redis-server \ + redis-tools \ + && rm -rf /var/lib/apt/lists/* + +# Redirect all compilers to ccache. +RUN for t in gcc g++ cc c++ clang clang++; do ln -vs /usr/bin/ccache /usr/local/bin/$t; done diff --git a/dockerfiles/fedora-36/Dockerfile b/dockerfiles/fedora-36/Dockerfile index 5817fca7e..d7aa9c561 100644 --- a/dockerfiles/fedora-36/Dockerfile +++ b/dockerfiles/fedora-36/Dockerfile @@ -1,4 +1,5 @@ -FROM fedora:36 +ARG BASE_IMAGE=fedora:36 +FROM ${BASE_IMAGE} AS build RUN dnf install -y \ autoconf \ @@ -11,6 +12,7 @@ RUN dnf install -y \ findutils \ gcc \ gcc-c++ \ + libstdc++-static \ hiredis-devel \ libzstd-devel \ make \ diff --git a/dockerfiles/fedora-40/Dockerfile b/dockerfiles/fedora-40/Dockerfile index e9a25cf60..b9f0b4ac9 100644 --- a/dockerfiles/fedora-40/Dockerfile +++ b/dockerfiles/fedora-40/Dockerfile @@ -1,4 +1,5 @@ -FROM fedora:40 +ARG BASE_IMAGE=fedora:40 +FROM ${BASE_IMAGE} AS build RUN dnf install -y \ blake3-devel \ @@ -14,6 +15,7 @@ RUN dnf install -y \ fmt-devel \ gcc \ gcc-c++ \ + libstdc++-static \ hiredis-devel \ less \ libzstd-devel \ diff --git a/dockerfiles/ubuntu-20.04/Dockerfile b/dockerfiles/ubuntu-20.04/Dockerfile index 46f4135e1..3c2cebfb5 100644 --- a/dockerfiles/ubuntu-20.04/Dockerfile +++ b/dockerfiles/ubuntu-20.04/Dockerfile @@ -1,6 +1,8 @@ -FROM ubuntu:20.04 +ARG BASE_IMAGE=ubuntu:20.04 +FROM ${BASE_IMAGE} AS build # Non-interactive: do not set up timezone settings. +ARG GCC_APT="gcc-multilib" RUN apt-get update \ && DEBIAN_FRONTEND="noninteractive" apt-get install -y --no-install-recommends \ asciidoctor \ @@ -12,7 +14,7 @@ RUN apt-get update \ docbook-xml \ docbook-xsl \ elfutils \ - gcc-multilib \ + ${GCC_APT} \ libhiredis-dev \ libzstd-dev \ python3 \ diff --git a/dockerfiles/ubuntu-22.04/Dockerfile b/dockerfiles/ubuntu-22.04/Dockerfile index 1c6d56143..8e9f6a041 100644 --- a/dockerfiles/ubuntu-22.04/Dockerfile +++ b/dockerfiles/ubuntu-22.04/Dockerfile @@ -1,6 +1,8 @@ -FROM ubuntu:22.04 +ARG BASE_IMAGE=ubuntu:22.04 +FROM ${BASE_IMAGE} AS build # Non-interactive: do not set up timezone settings. +ARG GCC_APT="gcc-multilib" RUN apt-get update \ && DEBIAN_FRONTEND="noninteractive" apt-get install -y --no-install-recommends \ asciidoctor \ @@ -12,7 +14,7 @@ RUN apt-get update \ docbook-xml \ docbook-xsl \ elfutils \ - gcc-multilib \ + ${GCC_APT} \ gcc-12 \ g++-12 \ libhiredis-dev \ diff --git a/dockerfiles/ubuntu-24.04/Dockerfile b/dockerfiles/ubuntu-24.04/Dockerfile index 6b893b3d8..e0733aa16 100644 --- a/dockerfiles/ubuntu-24.04/Dockerfile +++ b/dockerfiles/ubuntu-24.04/Dockerfile @@ -1,6 +1,8 @@ -FROM ubuntu:24.04 +ARG BASE_IMAGE=ubuntu:24.04 +FROM ${BASE_IMAGE} AS build # Non-interactive: do not set up timezone settings. +ARG GCC_APT="gcc-multilib" RUN apt-get update \ && DEBIAN_FRONTEND="noninteractive" apt-get install -y --no-install-recommends \ asciidoctor \ @@ -12,7 +14,7 @@ RUN apt-get update \ docbook-xml \ docbook-xsl \ elfutils \ - gcc-multilib \ + ${GCC_APT} \ g++-13 \ g++-14 \ libhiredis-dev \