From 812142a1b1f9102a5e138aa2ac050f031ba15155 Mon Sep 17 00:00:00 2001 From: Walter Oggioni Date: Wed, 5 Aug 2026 09:34:58 +0800 Subject: [PATCH] added otel module to nginx --- nginx/Dockerfile | 24 +++++++++++++++++++++++- nginx/build.sh | 2 +- nginx/install.sh | 2 +- 3 files changed, 25 insertions(+), 3 deletions(-) diff --git a/nginx/Dockerfile b/nginx/Dockerfile index ad7864b..0d391ec 100644 --- a/nginx/Dockerfile +++ b/nginx/Dockerfile @@ -10,9 +10,11 @@ RUN --mount=type=cache,target=/var/cache/apk apk add \ bind-tools \ binutils \ build-base \ + c-ares-dev \ ca-certificates \ cmake \ gcc \ + g++ \ gd-dev \ geoip-dev \ git \ @@ -47,12 +49,14 @@ RUN mkdir -p libressl/build RUN cmake -G Ninja -B libressl/build -S libressl \ -DCMAKE_BUILD_TYPE=Release \ -DLIBRESSL_APPS=OFF \ - -DLIBRESSL_SKIP_INSTALL=ON \ + -DLIBRESSL_SKIP_INSTALL=OFF \ + -DCMAKE_INSTALL_PREFIX=/home/luser/.local \ -DENABLE_ASM=OFF \ -DENABLE_NC=OFF \ -DLIBRESSL_TESTS=OFF \ -DBUILD_SHARED_LIBS=OFF RUN cmake --build libressl/build +RUN cmake --install libressl/build FROM build_stage_1 AS build_stage_2_vanilla ARG NGINX_VERSION @@ -82,6 +86,23 @@ WORKDIR /home/luser ADD --chown=luser:luser --chmod=755 ./build-rtmp.sh ./build-rtmp.sh RUN ./build-rtmp.sh +FROM build AS build-otel +ADD --chown=luser:luser https://github.com/nginx/nginx-otel.git#v0.1.2 /nginx-otel +USER luser +RUN cmake -G Ninja -B /home/luser/otel-build -S /nginx-otel \ + -DNGX_OTEL_NGINX_BUILD_DIR=/nginx/objs \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_CXX_FLAGS="-isystem /home/luser/otel-build/_deps/grpc-src/third_party/protobuf/third_party/utf8_range" \ + -DOPENSSL_ROOT_DIR=/home/luser/.local \ + -DNGX_OTEL_SDK=6f65c3eded2bb4656c8d675cad43bbe694c531c7 \ + -DNGX_OTEL_GRPC=c876f4da50f7da2f331888b88b2a7243514139fe \ + -DWITH_OTLP_GRPC=ON \ + -DWITH_OTLP_HTTP=ON \ + -DWITH_BENCHMARK=OFF \ + -DWITH_FUNC_TESTS=OFF \ + && cmake --build /home/luser/otel-build + + FROM base AS release ARG VERSION ENV NGINX_VERSION=${VERSION} @@ -99,6 +120,7 @@ RUN --mount=type=cache,target=/var/cache/apk \ (cd nginx && sh /install.sh) RUN --mount=type=cache,target=/var/cache/apk apk del .install_deps COPY --from=build-rtmp --chown=root:root /nginx/objs/ngx_rtmp_module.so /usr/lib/nginx/modules/ +COPY --from=build-otel --chown=root:root /home/luser/otel-build/ngx_otel_module.so /usr/lib/nginx/modules/ COPY --from=build /home/luser/libressl/openssl.cnf /etc/ssl/openssl.cnf COPY conf/nginx.conf /etc/nginx/nginx.conf COPY conf/dhparam /etc/nginx/dhparam diff --git a/nginx/build.sh b/nginx/build.sh index c6c07bf..12c0616 100644 --- a/nginx/build.sh +++ b/nginx/build.sh @@ -58,5 +58,5 @@ cd /nginx auto/configure $CONFIG \ --with-cc-opt="-I/home/luser/libressl/build/include" \ - --with-ld-opt="-lstdc++ -L/home/luser/libressl/build/ssl -L/home/luser/libressl/build/crypto" + --with-ld-opt="-lstdc++ -L/home/luser/.local/lib" make -j$(nproc) diff --git a/nginx/install.sh b/nginx/install.sh index 02fa52a..6284005 100644 --- a/nginx/install.sh +++ b/nginx/install.sh @@ -17,7 +17,7 @@ strip -s /usr/lib/nginx/modules/*.so apk add --no-cache --virtual .gettext gettext mv /usr/bin/envsubst /tmp/ -runDeps="libintl libxml2 musl zlib tzdata ca-certificates pcre brotli-libs libxslt geoip" +runDeps="libintl libxml2 musl zlib tzdata ca-certificates pcre brotli-libs libxslt geoip libstdc++ c-ares" apk add --no-cache $runDeps apk del .gettext mv /tmp/envsubst /usr/local/bin/