Commit 65d03178 authored by jan.koester's avatar jan.koester
Browse files

Dockerfile: pin dependency commits via ARG instead of unpinned git clone

All 5 Dockerfiles cloned libcmdplus/uuidplus/libnetplus/libhtmlpp/libhttppp/
libconfplus/libparitypp from git HEAD with no commit pin and no
cache-busting, so a normal docker build silently kept whatever was cloned
at the image's first-ever build indefinitely (confirmed: the libnetplus
clone line was last touched 2025-09-21, predating be9faab by 10 months).
Pin each dependency to a commit via ARG so bumping it is a visible diff
instead of frozen Docker layer cache.
parent e070145d
Loading
Loading
Loading
Loading
Loading
+24 −6
Changes for Dockerfile: 24 added lines, 6 removed lines.
Original line number Diff line number Diff line
FROM node:alpine AS build
WORKDIR /build/alpine

# Pin each dependency to a known-good commit so staleness shows up as a diff
# here instead of being silently frozen in Docker's layer cache. Bump these
# when a fix in the corresponding repo needs to land in authdb's image.
ARG LIBCMDPLUS_REF=ea1158a
ARG UUIDPLUS_REF=0247530
ARG LIBNETPLUS_REF=b83b011
ARG LIBHTMLPP_REF=4822230
ARG LIBHTTPPP_REF=2d61263
ARG LIBCONFPLUS_REF=7358946
ARG LIBPARITYPP_REF=ac50c9e

RUN apk update --no-cache  && apk upgrade --no-cache
RUN apk add --no-cache cmake ninja clang alpine-sdk lua-aports sudo openssh-keygen fakeroot openssh-client yaml-dev brotli-dev json-c-dev util-linux-dev

RUN git clone https://tuxist.de/git/jan.koester/libcmdplus.git
RUN git clone https://tuxist.de/git/jan.koester/libcmdplus.git && \
    cd libcmdplus && git checkout ${LIBCMDPLUS_REF} && cd ..
RUN mkdir libcmdplus/build
RUN cd libcmdplus/build && cmake ../ -G Ninja -DCMAKE_CXX_FLAGS="-fPIC" && ninja install

RUN git clone https://tuxist.de/git/tuxist/uuidplus.git
RUN git clone https://tuxist.de/git/tuxist/uuidplus.git && \
    cd uuidplus && git checkout ${UUIDPLUS_REF} && cd ..
RUN mkdir uuidplus/build
RUN cd uuidplus/build && cmake ../ -G Ninja && ninja install

RUN git clone https://tuxist.de/git/jan.koester/libnetplus.git
RUN git clone https://tuxist.de/git/jan.koester/libnetplus.git && \
    cd libnetplus && git checkout ${LIBNETPLUS_REF} && cd ..
RUN mkdir libnetplus/build
RUN cd libnetplus/build && cmake ../ -G Ninja && ninja install

RUN git clone https://tuxist.de/git/jan.koester/libhtmlpp.git
RUN git clone https://tuxist.de/git/jan.koester/libhtmlpp.git && \
    cd libhtmlpp && git checkout ${LIBHTMLPP_REF} && cd ..
RUN mkdir libhtmlpp/build
RUN cd libhtmlpp/build && cmake ../ -G Ninja && ninja install

RUN git clone https://tuxist.de/git/jan.koester/libhttppp.git
RUN git clone https://tuxist.de/git/jan.koester/libhttppp.git && \
    cd libhttppp && git checkout ${LIBHTTPPP_REF} && cd ..
RUN mkdir libhttppp/build
RUN cd libhttppp/build && cmake ../ -G Ninja && ninja install

RUN git clone https://tuxist.de/git/jan.koester/libconfplus.git
RUN git clone https://tuxist.de/git/jan.koester/libconfplus.git && \
    cd libconfplus && git checkout ${LIBCONFPLUS_REF} && cd ..
RUN mkdir libconfplus/build
RUN cd libconfplus/build && cmake ../ -G Ninja -DCMAKE_CXX_FLAGS="-fPIC" && ninja install

RUN git clone https://tuxist.de/git/tuxist/libparitypp.git && \
    cd libparitypp && git checkout ${LIBPARITYPP_REF} && cd .. && \
    mkdir libparitypp/build && \
    cd libparitypp/build && cmake ../ -G Ninja && ninja install

+18 −0
Changes for test/docker/Dockerfile: 18 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -4,31 +4,49 @@ WORKDIR /build
RUN apk update --no-cache && apk upgrade --no-cache
RUN apk add --no-cache cmake ninja clang alpine-sdk yaml-dev brotli-dev json-c-dev util-linux-dev

# Pin each dependency to a known-good commit so staleness shows up as a diff
# here instead of being silently frozen in Docker's layer cache. Bump these
# when a fix in the corresponding repo needs to land in this image.
ARG LIBCMDPLUS_REF=ea1158a
ARG UUIDPLUS_REF=0247530
ARG LIBNETPLUS_REF=b83b011
ARG LIBHTMLPP_REF=4822230
ARG LIBHTTPPP_REF=2d61263
ARG LIBCONFPLUS_REF=7358946
ARG LIBPARITYPP_REF=ac50c9e

RUN git clone https://tuxist.de/git/jan.koester/libcmdplus.git && \
    cd libcmdplus && git checkout ${LIBCMDPLUS_REF} && cd .. && \
    mkdir libcmdplus/build && \
    cd libcmdplus/build && cmake ../ -G Ninja -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_CXX_FLAGS="-fPIC" && ninja install

RUN git clone https://tuxist.de/git/tuxist/uuidplus.git && \
    cd uuidplus && git checkout ${UUIDPLUS_REF} && cd .. && \
    mkdir uuidplus/build && \
    cd uuidplus/build && cmake ../ -G Ninja -DCMAKE_INSTALL_PREFIX=/usr/local && ninja install

RUN git clone https://tuxist.de/git/jan.koester/libnetplus.git && \
    cd libnetplus && git checkout ${LIBNETPLUS_REF} && cd .. && \
    mkdir libnetplus/build && \
    cd libnetplus/build && cmake ../ -G Ninja -DCMAKE_INSTALL_PREFIX=/usr/local && ninja install

RUN git clone https://tuxist.de/git/jan.koester/libhtmlpp.git && \
    cd libhtmlpp && git checkout ${LIBHTMLPP_REF} && cd .. && \
    mkdir libhtmlpp/build && \
    cd libhtmlpp/build && cmake ../ -G Ninja -DCMAKE_INSTALL_PREFIX=/usr/local && ninja install

RUN git clone https://tuxist.de/git/jan.koester/libhttppp.git && \
    cd libhttppp && git checkout ${LIBHTTPPP_REF} && cd .. && \
    mkdir libhttppp/build && \
    cd libhttppp/build && cmake ../ -G Ninja -DCMAKE_INSTALL_PREFIX=/usr/local && ninja install

RUN git clone https://tuxist.de/git/jan.koester/libconfplus.git && \
    cd libconfplus && git checkout ${LIBCONFPLUS_REF} && cd .. && \
    mkdir libconfplus/build && \
    cd libconfplus/build && cmake ../ -G Ninja -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_CXX_FLAGS="-fPIC" && ninja install

RUN git clone https://tuxist.de/git/tuxist/libparitypp.git && \
    cd libparitypp && git checkout ${LIBPARITYPP_REF} && cd .. && \
    mkdir libparitypp/build && \
    cd libparitypp/build && cmake ../ -G Ninja -DCMAKE_INSTALL_PREFIX=/usr/local && ninja install

+18 −0
Changes for test/docker/Dockerfile.debug: 18 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -8,31 +8,49 @@ RUN apk add --no-cache cmake ninja clang alpine-sdk yaml-dev brotli-dev json-c-d
ENV CXXFLAGS="-g -O0 -fno-omit-frame-pointer"
ENV CFLAGS="-g -O0 -fno-omit-frame-pointer"

# Pin each dependency to a known-good commit so staleness shows up as a diff
# here instead of being silently frozen in Docker's layer cache. Bump these
# when a fix in the corresponding repo needs to land in this image.
ARG LIBCMDPLUS_REF=ea1158a
ARG UUIDPLUS_REF=0247530
ARG LIBNETPLUS_REF=b83b011
ARG LIBHTMLPP_REF=4822230
ARG LIBHTTPPP_REF=2d61263
ARG LIBCONFPLUS_REF=7358946
ARG LIBPARITYPP_REF=ac50c9e

RUN git clone https://tuxist.de/git/jan.koester/libcmdplus.git && \
    cd libcmdplus && git checkout ${LIBCMDPLUS_REF} && cd .. && \
    mkdir libcmdplus/build && \
    cd libcmdplus/build && cmake ../ -G Ninja -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_FLAGS="-fPIC -g -O0" && ninja install

RUN git clone https://tuxist.de/git/tuxist/uuidplus.git && \
    cd uuidplus && git checkout ${UUIDPLUS_REF} && cd .. && \
    mkdir uuidplus/build && \
    cd uuidplus/build && cmake ../ -G Ninja -DCMAKE_BUILD_TYPE=Debug && ninja install

RUN git clone https://tuxist.de/git/jan.koester/libnetplus.git && \
    cd libnetplus && git checkout ${LIBNETPLUS_REF} && cd .. && \
    mkdir libnetplus/build && \
    cd libnetplus/build && cmake ../ -G Ninja -DCMAKE_BUILD_TYPE=Debug && ninja install

RUN git clone https://tuxist.de/git/jan.koester/libhtmlpp.git && \
    cd libhtmlpp && git checkout ${LIBHTMLPP_REF} && cd .. && \
    mkdir libhtmlpp/build && \
    cd libhtmlpp/build && cmake ../ -G Ninja -DCMAKE_BUILD_TYPE=Debug && ninja install

RUN git clone https://tuxist.de/git/jan.koester/libhttppp.git && \
    cd libhttppp && git checkout ${LIBHTTPPP_REF} && cd .. && \
    mkdir libhttppp/build && \
    cd libhttppp/build && cmake ../ -G Ninja -DCMAKE_BUILD_TYPE=Debug && ninja install

RUN git clone https://tuxist.de/git/jan.koester/libconfplus.git && \
    cd libconfplus && git checkout ${LIBCONFPLUS_REF} && cd .. && \
    mkdir libconfplus/build && \
    cd libconfplus/build && cmake ../ -G Ninja -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_FLAGS="-fPIC -g -O0" && ninja install

RUN git clone https://tuxist.de/git/tuxist/libparitypp.git && \
    cd libparitypp && git checkout ${LIBPARITYPP_REF} && cd .. && \
    mkdir libparitypp/build && \
    cd libparitypp/build && cmake ../ -G Ninja -DCMAKE_BUILD_TYPE=Debug && ninja install

+18 −0
Changes for test/docker/Dockerfile.helgrind: 18 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -8,31 +8,49 @@ RUN apk add --no-cache cmake ninja clang alpine-sdk yaml-dev brotli-dev json-c-d
ENV CXXFLAGS="-g -O0 -fno-omit-frame-pointer"
ENV CFLAGS="-g -O0 -fno-omit-frame-pointer"

# Pin each dependency to a known-good commit so staleness shows up as a diff
# here instead of being silently frozen in Docker's layer cache. Bump these
# when a fix in the corresponding repo needs to land in this image.
ARG LIBCMDPLUS_REF=ea1158a
ARG UUIDPLUS_REF=0247530
ARG LIBNETPLUS_REF=b83b011
ARG LIBHTMLPP_REF=4822230
ARG LIBHTTPPP_REF=2d61263
ARG LIBCONFPLUS_REF=7358946
ARG LIBPARITYPP_REF=ac50c9e

RUN git clone https://tuxist.de/git/jan.koester/libcmdplus.git && \
    cd libcmdplus && git checkout ${LIBCMDPLUS_REF} && cd .. && \
    mkdir libcmdplus/build && \
    cd libcmdplus/build && cmake ../ -G Ninja -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_FLAGS="-fPIC -g -O0" && ninja install

RUN git clone https://tuxist.de/git/tuxist/uuidplus.git && \
    cd uuidplus && git checkout ${UUIDPLUS_REF} && cd .. && \
    mkdir uuidplus/build && \
    cd uuidplus/build && cmake ../ -G Ninja -DCMAKE_BUILD_TYPE=Debug && ninja install

RUN git clone https://tuxist.de/git/jan.koester/libnetplus.git && \
    cd libnetplus && git checkout ${LIBNETPLUS_REF} && cd .. && \
    mkdir libnetplus/build && \
    cd libnetplus/build && cmake ../ -G Ninja -DCMAKE_BUILD_TYPE=Debug && ninja install

RUN git clone https://tuxist.de/git/jan.koester/libhtmlpp.git && \
    cd libhtmlpp && git checkout ${LIBHTMLPP_REF} && cd .. && \
    mkdir libhtmlpp/build && \
    cd libhtmlpp/build && cmake ../ -G Ninja -DCMAKE_BUILD_TYPE=Debug && ninja install

RUN git clone https://tuxist.de/git/jan.koester/libhttppp.git && \
    cd libhttppp && git checkout ${LIBHTTPPP_REF} && cd .. && \
    mkdir libhttppp/build && \
    cd libhttppp/build && cmake ../ -G Ninja -DCMAKE_BUILD_TYPE=Debug && ninja install

RUN git clone https://tuxist.de/git/jan.koester/libconfplus.git && \
    cd libconfplus && git checkout ${LIBCONFPLUS_REF} && cd .. && \
    mkdir libconfplus/build && \
    cd libconfplus/build && cmake ../ -G Ninja -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_FLAGS="-fPIC -g -O0" && ninja install

RUN git clone https://tuxist.de/git/tuxist/libparitypp.git && \
    cd libparitypp && git checkout ${LIBPARITYPP_REF} && cd .. && \
    mkdir libparitypp/build && \
    cd libparitypp/build && cmake ../ -G Ninja -DCMAKE_BUILD_TYPE=Debug && ninja install

+18 −0
Changes for test/docker/Dockerfile.tsan: 18 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -11,31 +11,49 @@ ENV CXXFLAGS="-g -O1 -fno-omit-frame-pointer -fsanitize=thread"
ENV CFLAGS="-g -O1 -fno-omit-frame-pointer -fsanitize=thread"
ENV LDFLAGS="-fsanitize=thread"

# Pin each dependency to a known-good commit so staleness shows up as a diff
# here instead of being silently frozen in Docker's layer cache. Bump these
# when a fix in the corresponding repo needs to land in this image.
ARG LIBCMDPLUS_REF=ea1158a
ARG UUIDPLUS_REF=0247530
ARG LIBNETPLUS_REF=b83b011
ARG LIBHTMLPP_REF=4822230
ARG LIBHTTPPP_REF=2d61263
ARG LIBCONFPLUS_REF=7358946
ARG LIBPARITYPP_REF=ac50c9e

RUN git clone https://tuxist.de/git/jan.koester/libcmdplus.git && \
    cd libcmdplus && git checkout ${LIBCMDPLUS_REF} && cd .. && \
    mkdir libcmdplus/build && \
    cd libcmdplus/build && cmake ../ -G Ninja -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_FLAGS="-fPIC -g -O1 -fsanitize=thread" -DCMAKE_C_FLAGS="-fPIC -g -O1 -fsanitize=thread" -DCMAKE_EXE_LINKER_FLAGS="-fsanitize=thread" -DCMAKE_SHARED_LINKER_FLAGS="-fsanitize=thread" && ninja install

RUN git clone https://tuxist.de/git/tuxist/uuidplus.git && \
    cd uuidplus && git checkout ${UUIDPLUS_REF} && cd .. && \
    mkdir uuidplus/build && \
    cd uuidplus/build && cmake ../ -G Ninja -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_FLAGS="-g -O1 -fsanitize=thread" -DCMAKE_C_FLAGS="-g -O1 -fsanitize=thread" -DCMAKE_EXE_LINKER_FLAGS="-fsanitize=thread" -DCMAKE_SHARED_LINKER_FLAGS="-fsanitize=thread" && ninja install

RUN git clone https://tuxist.de/git/jan.koester/libnetplus.git && \
    cd libnetplus && git checkout ${LIBNETPLUS_REF} && cd .. && \
    mkdir libnetplus/build && \
    cd libnetplus/build && cmake ../ -G Ninja -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_FLAGS="-g -O1 -fsanitize=thread" -DCMAKE_C_FLAGS="-g -O1 -fsanitize=thread" -DCMAKE_EXE_LINKER_FLAGS="-fsanitize=thread" -DCMAKE_SHARED_LINKER_FLAGS="-fsanitize=thread" && ninja install

RUN git clone https://tuxist.de/git/jan.koester/libhtmlpp.git && \
    cd libhtmlpp && git checkout ${LIBHTMLPP_REF} && cd .. && \
    mkdir libhtmlpp/build && \
    cd libhtmlpp/build && cmake ../ -G Ninja -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_FLAGS="-g -O1 -fsanitize=thread" -DCMAKE_C_FLAGS="-g -O1 -fsanitize=thread" -DCMAKE_EXE_LINKER_FLAGS="-fsanitize=thread" -DCMAKE_SHARED_LINKER_FLAGS="-fsanitize=thread" && ninja install

RUN git clone https://tuxist.de/git/jan.koester/libhttppp.git && \
    cd libhttppp && git checkout ${LIBHTTPPP_REF} && cd .. && \
    mkdir libhttppp/build && \
    cd libhttppp/build && cmake ../ -G Ninja -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_FLAGS="-g -O1 -fsanitize=thread" -DCMAKE_C_FLAGS="-g -O1 -fsanitize=thread" -DCMAKE_EXE_LINKER_FLAGS="-fsanitize=thread" -DCMAKE_SHARED_LINKER_FLAGS="-fsanitize=thread" && ninja install

RUN git clone https://tuxist.de/git/jan.koester/libconfplus.git && \
    cd libconfplus && git checkout ${LIBCONFPLUS_REF} && cd .. && \
    mkdir libconfplus/build && \
    cd libconfplus/build && cmake ../ -G Ninja -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_FLAGS="-fPIC -g -O1 -fsanitize=thread" -DCMAKE_C_FLAGS="-fPIC -g -O1 -fsanitize=thread" -DCMAKE_EXE_LINKER_FLAGS="-fsanitize=thread" -DCMAKE_SHARED_LINKER_FLAGS="-fsanitize=thread" && ninja install

RUN git clone https://tuxist.de/git/tuxist/libparitypp.git && \
    cd libparitypp && git checkout ${LIBPARITYPP_REF} && cd .. && \
    mkdir libparitypp/build && \
    cd libparitypp/build && cmake ../ -G Ninja -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_FLAGS="-g -O1 -fsanitize=thread" -DCMAKE_C_FLAGS="-g -O1 -fsanitize=thread" -DCMAKE_EXE_LINKER_FLAGS="-fsanitize=thread" -DCMAKE_SHARED_LINKER_FLAGS="-fsanitize=thread" && ninja install