diff options
author | Konstantin Pavlov <thresh@nginx.com> | 2024-12-13 04:10:32 +0000 |
---|---|---|
committer | Konstantin Pavlov <pavlov.konstantin@gmail.com> | 2024-12-18 11:01:11 -0800 |
commit | 62129373d709bfde94a3865a15db75bf5cf52499 (patch) | |
tree | afd912611cdc822ecf988697cc7e8573ef8ca138 | |
parent | 6f9954bdc044add9eeeb65c2fb67d553b32e9214 (diff) | |
download | unit-62129373d709bfde94a3865a15db75bf5cf52499.tar.gz unit-62129373d709bfde94a3865a15db75bf5cf52499.tar.bz2 |
Docker: enable otel and fix build with wasmtime 24+
-rw-r--r-- | pkg/docker/Makefile | 26 | ||||
-rw-r--r-- | pkg/docker/template.Dockerfile | 25 |
2 files changed, 26 insertions, 25 deletions
diff --git a/pkg/docker/Makefile b/pkg/docker/Makefile index d633f870..976e2cfb 100644 --- a/pkg/docker/Makefile +++ b/pkg/docker/Makefile @@ -79,33 +79,13 @@ MODULE_PREBUILD_ruby ?= /bin/true VERSIONS_wasm ?= CONTAINER_wasm ?= debian:$(VARIANT)-slim -CONFIGURE_wasm ?= wasm --include-path=\`pwd\`/pkg/contrib/wasmtime/crates/c-api/include --lib-path=/usr/lib/\$$(dpkg-architecture -q DEB_HOST_MULTIARCH)/ \&\& ./configure wasm-wasi-component +CONFIGURE_wasm ?= wasm --include-path=\`pwd\`/pkg/contrib/wasmtime/artifacts/include --lib-path=/usr/lib/\$$(dpkg-architecture -q DEB_HOST_MULTIARCH)/ \&\& ./configure wasm-wasi-component INSTALL_wasm ?= wasm-install wasm-wasi-component-install RUN_wasm ?= /bin/true define MODULE_PREBUILD_wasm -apt-get install --no-install-recommends --no-install-suggests -y libclang-dev \\\n \ -\ \ \ \&\& export RUST_VERSION=1.80.1 \\\n \ -\ \ \ \&\& export RUSTUP_HOME=/usr/src/unit/rustup \\\n \ -\ \ \ \&\& export CARGO_HOME=/usr/src/unit/cargo \\\n \ -\ \ \ \&\& export PATH=/usr/src/unit/cargo/bin:\$$PATH \\\n \ -\ \ \ \&\& dpkgArch="\$$\(dpkg --print-architecture\)" \\\n \ -\ \ \ \&\& case "\$${dpkgArch##*-}" in \\\n \ -\ \ \ \ \ \ amd64\) rustArch="x86_64-unknown-linux-gnu"; rustupSha256="6aeece6993e902708983b209d04c0d1dbb14ebb405ddb87def578d41f920f56d" ;; \\\n \ -\ \ \ \ \ \ arm64\) rustArch="aarch64-unknown-linux-gnu"; rustupSha256="1cffbf51e63e634c746f741de50649bbbcbd9dbe1de363c9ecef64e278dba2b2" ;; \\\n \ -\ \ \ \ \ \ *\) echo \>\&2 "unsupported architecture: \$${dpkgArch}"; exit 1 ;; \\\n \ -\ \ \ \esac \\\n \ -\ \ \ \&\& url="https://static.rust-lang.org/rustup/archive/1.27.1/\$${rustArch}/rustup-init" \\\n \ -\ \ \ \&\& curl -L -O "\$$url" \\\n \ -\ \ \ \&\& echo "\$${rustupSha256} *rustup-init" | sha256sum -c - \\\n \ -\ \ \ \&\& chmod +x rustup-init \\\n \ -\ \ \ \&\& ./rustup-init -y --no-modify-path --profile minimal --default-toolchain \$$RUST_VERSION --default-host \$${rustArch} \\\n \ -\ \ \ \&\& rm rustup-init \\\n \ -\ \ \ \&\& rustup --version \\\n \ -\ \ \ \&\& cargo --version \\\n \ -\ \ \ \&\& rustc --version \\\n \ -\ \ \ \&\& make -C pkg/contrib .wasmtime \\\n \ -\ \ \ \&\& install -pm 755 pkg/contrib/wasmtime/target/release/libwasmtime.so /usr/lib/\$$\(dpkg-architecture -q DEB_HOST_MULTIARCH\)/ +make -C pkg/contrib .wasmtime \\\n \ +\ \ \ \&\& install -pm 755 pkg/contrib/wasmtime/artifacts/lib/libwasmtime.so /usr/lib/\$$\(dpkg-architecture -q DEB_HOST_MULTIARCH\)/ endef default: diff --git a/pkg/docker/template.Dockerfile b/pkg/docker/template.Dockerfile index edf9ba75..fe3c45ae 100644 --- a/pkg/docker/template.Dockerfile +++ b/pkg/docker/template.Dockerfile @@ -11,7 +11,27 @@ LABEL org.opencontainers.image.version="@@VERSION@@" RUN set -ex \ && savedAptMark="$(apt-mark showmanual)" \ && apt-get update \ - && apt-get install --no-install-recommends --no-install-suggests -y ca-certificates git build-essential libssl-dev libpcre2-dev curl pkg-config \ + && apt-get install --no-install-recommends --no-install-suggests -y \ + ca-certificates git build-essential libssl-dev libpcre2-dev curl pkg-config libclang-dev cmake \ + && export RUST_VERSION=1.80.1 \ + && export RUSTUP_HOME=/usr/src/unit/rustup \ + && export CARGO_HOME=/usr/src/unit/cargo \ + && export PATH=/usr/src/unit/cargo/bin:$PATH \ + && dpkgArch="$(dpkg --print-architecture)" \ + && case "${dpkgArch##*-}" in \ + amd64) rustArch="x86_64-unknown-linux-gnu"; rustupSha256="6aeece6993e902708983b209d04c0d1dbb14ebb405ddb87def578d41f920f56d" ;; \ + arm64) rustArch="aarch64-unknown-linux-gnu"; rustupSha256="1cffbf51e63e634c746f741de50649bbbcbd9dbe1de363c9ecef64e278dba2b2" ;; \ + *) echo >&2 "unsupported architecture: ${dpkgArch}"; exit 1 ;; \ + esac \ + && url="https://static.rust-lang.org/rustup/archive/1.27.1/${rustArch}/rustup-init" \ + && curl -L -O "$url" \ + && echo "${rustupSha256} *rustup-init" | sha256sum -c - \ + && chmod +x rustup-init \ + && ./rustup-init -y --no-modify-path --profile minimal --default-toolchain $RUST_VERSION --default-host ${rustArch} \ + && rm rustup-init \ + && rustup --version \ + && cargo --version \ + && rustc --version \ && mkdir -p /usr/lib/unit/modules /usr/lib/unit/debug-modules \ && mkdir -p /usr/src/unit \ && cd /usr/src/unit \ @@ -34,7 +54,8 @@ RUN set -ex \ --openssl \ --libdir=/usr/lib/$DEB_HOST_MULTIARCH" \ && CONFIGURE_ARGS="$CONFIGURE_ARGS_MODULES \ - --njs" \ + --njs \ + --otel" \ && make -j $NCPU -C pkg/contrib .njs \ && export PKG_CONFIG_PATH=$(pwd)/pkg/contrib/njs/build \ && ./configure $CONFIGURE_ARGS --cc-opt="$CC_OPT" --ld-opt="$LD_OPT" --modulesdir=/usr/lib/unit/debug-modules --debug \ |