X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=docker%2FDockerfile.redis;h=bf13ec41ed63355d33d0f75a5dfffd16157476f9;hb=d4949b48aebbd2ab7b86c77cd9c2d6afd1ab70f0;hp=98d4c262ea12132a4e469d1f279ec176c1ee6306;hpb=99f548c04df61680aa16e76f8135201cb09914be;p=ric-plt%2Fdbaas.git diff --git a/docker/Dockerfile.redis b/docker/Dockerfile.redis index 98d4c26..bf13ec4 100644 --- a/docker/Dockerfile.redis +++ b/docker/Dockerfile.redis @@ -18,16 +18,67 @@ # platform project (RICP). # -FROM nexus3.o-ran-sc.org:10004/bldr-alpine3:6-a3.9-nng as build-env + +# Alpine-linux based containers use musl implementation of libc which causes +# valgrind to emit false positives. Therefore we run UT with valgrind in +# a separate build stage that uses ubuntu container with GNU libc installed. +# +# NOTE: The valgrind false positive problem could also potentially be solved +# with valgrind suppression files but that kind of approach may be fragile. +FROM ubuntu:18.04 as cpputest-build + +RUN apt update && \ + apt install -y \ + automake \ + autoconf \ + cmake \ + curl \ + g++ \ + gcc \ + libtool \ + make \ + pkg-config \ + valgrind \ + lcov + +# Cpputest built-in memory checks generate false positives in valgrind. +# This is solved by compiling cpputest with memory checking disabled. +WORKDIR /cpputest +RUN curl -L https://github.com/cpputest/cpputest/releases/download/v3.8/cpputest-3.8.tar.gz | \ + tar --strip-components=1 -xzf - +WORKDIR /cpputest/builddir +RUN cmake -DMEMORY_LEAK_DETECTION=OFF .. && \ + make install COPY ./redismodule /redismodule WORKDIR /redismodule RUN ./autogen.sh && \ ./configure && \ - make install -j + make test + +RUN ./autogen.sh && \ + ./configure --disable-unit-test-memcheck && \ + make test + +FROM nexus3.o-ran-sc.org:10002/o-ran-sc/bldr-alpine3-go:2.0.0 as build-env + +RUN apk add cpputest +COPY ./redismodule /redismodule +WORKDIR /redismodule +RUN ./autogen.sh && \ + ./configure --disable-unit-test-memcheck && \ + make test && \ + make install + + +FROM redis:5.0.9-alpine3.11 as build -FROM redis:5.0.5-alpine3.9 +RUN apk --update add --upgrade --no-cache \ + apk-tools \ + openssl \ + ssl_client \ + musl-utils \ + busybox -RUN apk add curl COPY --from=build-env /usr/local/libexec/redismodule/libredismodule.so /usr/local/libexec/redismodule/libredismodule.so WORKDIR /data