Skip to content

Commit

Permalink
Docker: enable otel and fix build with wasmtime 24+
Browse files Browse the repository at this point in the history
  • Loading branch information
thresheek committed Dec 18, 2024
1 parent f1e8c45 commit 364a423
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 25 deletions.
26 changes: 3 additions & 23 deletions pkg/docker/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down
25 changes: 23 additions & 2 deletions pkg/docker/template.Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -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 \
Expand All @@ -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 \
Expand Down

0 comments on commit 364a423

Please sign in to comment.