Loading test/docker/Dockerfile.helgrind 0 → 100644 +70 −0 Original line number Diff line number Diff line FROM node:alpine AS build 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 # Build all libraries with debug symbols and no optimization ENV CXXFLAGS="-g -O0 -fno-omit-frame-pointer" ENV CFLAGS="-g -O0 -fno-omit-frame-pointer" RUN git clone https://tuxist.de/git/jan.koester/libcmdplus.git && \ 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 && \ 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 && \ 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 && \ 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 && \ 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 && \ 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 && \ mkdir libparitypp/build && \ cd libparitypp/build && cmake ../ -G Ninja -DCMAKE_BUILD_TYPE=Debug && ninja install RUN git clone https://tuxist.de/git/jan.koester/authdb.git && \ mkdir authdb/build && \ cd authdb/build && cmake ../ -G Ninja -DCMAKE_BUILD_TYPE=Debug -DBUILD_BINDINGS=OFF -DDATAPATH:PATH=/usr/local/share/authdb && ninja install # --- Runtime stage (keep debug tools + valgrind) --- FROM node:alpine RUN addgroup authdb && \ adduser authdb -h /var/lib/authdb -S -G authdb RUN apk update && apk upgrade && \ apk add --no-cache yaml brotli openssl json-c libuuid libstdc++ \ valgrind musl-dbg libstdc++-dev RUN mkdir -p /etc/authdb/certs /var/lib/authdb /usr/local/share/authdb /var/log/authdb && \ chown -R authdb:authdb /var/lib/authdb /var/log/authdb COPY --from=build /usr/local/bin/authdb /usr/local/bin/ COPY --from=build /usr/local/lib /usr/local/lib/ COPY --from=build /usr/local/lib/authdb /usr/local/lib/authdb COPY --from=build /usr/local/share/authdb /usr/local/share/authdb # Copy source trees so valgrind can show source lines COPY --from=build /build /build EXPOSE 9090 4433 CMD ["valgrind", "--tool=helgrind", \ "--history-level=full", \ "--conflict-cache-size=5000000", \ "--suppressions=/build/libnetplus/helgrind.supp", \ "authdb", "-f", "true", "-c", "yaml:///etc/authdb/config.yaml"] test/docker/docker-compose.helgrind.yml 0 → 100644 +58 −0 Original line number Diff line number Diff line services: authdb1: build: context: . dockerfile: Dockerfile.helgrind container_name: authdb1 hostname: node1 cap_add: - SYS_PTRACE security_opt: - seccomp:unconfined volumes: - ./config-node1.yaml:/etc/authdb/config.yaml:ro - ./certs:/etc/authdb/certs:ro ports: - "9091:9090" networks: - cluster authdb2: build: context: . dockerfile: Dockerfile.helgrind container_name: authdb2 hostname: node2 cap_add: - SYS_PTRACE security_opt: - seccomp:unconfined volumes: - ./config-node2.yaml:/etc/authdb/config.yaml:ro - ./certs:/etc/authdb/certs:ro ports: - "9092:9090" networks: - cluster authdb3: build: context: . dockerfile: Dockerfile.helgrind container_name: authdb3 hostname: node3 cap_add: - SYS_PTRACE security_opt: - seccomp:unconfined volumes: - ./config-node3.yaml:/etc/authdb/config.yaml:ro - ./certs:/etc/authdb/certs:ro ports: - "9093:9090" networks: - cluster networks: cluster: driver: bridge Loading
test/docker/Dockerfile.helgrind 0 → 100644 +70 −0 Original line number Diff line number Diff line FROM node:alpine AS build 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 # Build all libraries with debug symbols and no optimization ENV CXXFLAGS="-g -O0 -fno-omit-frame-pointer" ENV CFLAGS="-g -O0 -fno-omit-frame-pointer" RUN git clone https://tuxist.de/git/jan.koester/libcmdplus.git && \ 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 && \ 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 && \ 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 && \ 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 && \ 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 && \ 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 && \ mkdir libparitypp/build && \ cd libparitypp/build && cmake ../ -G Ninja -DCMAKE_BUILD_TYPE=Debug && ninja install RUN git clone https://tuxist.de/git/jan.koester/authdb.git && \ mkdir authdb/build && \ cd authdb/build && cmake ../ -G Ninja -DCMAKE_BUILD_TYPE=Debug -DBUILD_BINDINGS=OFF -DDATAPATH:PATH=/usr/local/share/authdb && ninja install # --- Runtime stage (keep debug tools + valgrind) --- FROM node:alpine RUN addgroup authdb && \ adduser authdb -h /var/lib/authdb -S -G authdb RUN apk update && apk upgrade && \ apk add --no-cache yaml brotli openssl json-c libuuid libstdc++ \ valgrind musl-dbg libstdc++-dev RUN mkdir -p /etc/authdb/certs /var/lib/authdb /usr/local/share/authdb /var/log/authdb && \ chown -R authdb:authdb /var/lib/authdb /var/log/authdb COPY --from=build /usr/local/bin/authdb /usr/local/bin/ COPY --from=build /usr/local/lib /usr/local/lib/ COPY --from=build /usr/local/lib/authdb /usr/local/lib/authdb COPY --from=build /usr/local/share/authdb /usr/local/share/authdb # Copy source trees so valgrind can show source lines COPY --from=build /build /build EXPOSE 9090 4433 CMD ["valgrind", "--tool=helgrind", \ "--history-level=full", \ "--conflict-cache-size=5000000", \ "--suppressions=/build/libnetplus/helgrind.supp", \ "authdb", "-f", "true", "-c", "yaml:///etc/authdb/config.yaml"]
test/docker/docker-compose.helgrind.yml 0 → 100644 +58 −0 Original line number Diff line number Diff line services: authdb1: build: context: . dockerfile: Dockerfile.helgrind container_name: authdb1 hostname: node1 cap_add: - SYS_PTRACE security_opt: - seccomp:unconfined volumes: - ./config-node1.yaml:/etc/authdb/config.yaml:ro - ./certs:/etc/authdb/certs:ro ports: - "9091:9090" networks: - cluster authdb2: build: context: . dockerfile: Dockerfile.helgrind container_name: authdb2 hostname: node2 cap_add: - SYS_PTRACE security_opt: - seccomp:unconfined volumes: - ./config-node2.yaml:/etc/authdb/config.yaml:ro - ./certs:/etc/authdb/certs:ro ports: - "9092:9090" networks: - cluster authdb3: build: context: . dockerfile: Dockerfile.helgrind container_name: authdb3 hostname: node3 cap_add: - SYS_PTRACE security_opt: - seccomp:unconfined volumes: - ./config-node3.yaml:/etc/authdb/config.yaml:ro - ./certs:/etc/authdb/certs:ro ports: - "9093:9090" networks: - cluster networks: cluster: driver: bridge