Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Updated Unit to 1.34.0 #18140

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

thresheek
Copy link
Contributor

This also bumps language variants to:

  • php 8.4
  • python 3.13

Note that this new release also incorporates Rust-based code into the main binary, which means build times are now longer and the resulting images have a bigger size.

This also bumps language variants to:
 - php 8.4
 - python 3.13

Note that this new release also incorporates Rust-based code into the
main binary, which means build times are now longer and the resulting
images have a bigger size.
@thresheek thresheek requested a review from a team as a code owner December 19, 2024 21:09
Copy link

Diff for 2357c85:
diff --git a/_bashbrew-cat b/_bashbrew-cat
index dc39f1a..5bd3620 100644
--- a/_bashbrew-cat
+++ b/_bashbrew-cat
@@ -1,121 +1,121 @@
 Maintainers: Unit Docker Maintainers <[email protected]> (@nginx)
 GitRepo: https://github.com/nginx/unit.git
 
-Tags: 1.33.0-go1.22, go1.22
+Tags: 1.34.0-go1.22, go1.22
 Architectures: amd64, arm64v8
 GitFetch: refs/heads/packaging
-GitCommit: 624debcf17ea7faab01fa841bd4dcd9f308cf306
+GitCommit: d8acad350a52a20918c46c09cb0a0f5479400923
 Directory: pkg/docker
 File: Dockerfile.go1.22
 
-Tags: 1.33.0-go1.23, go1.23, go1, go
+Tags: 1.34.0-go1.23, go1.23, go1, go
 Architectures: amd64, arm64v8
 GitFetch: refs/heads/packaging
-GitCommit: 624debcf17ea7faab01fa841bd4dcd9f308cf306
+GitCommit: d8acad350a52a20918c46c09cb0a0f5479400923
 Directory: pkg/docker
 File: Dockerfile.go1.23
 
-Tags: 1.33.0-jsc11, jsc11, jsc
+Tags: 1.34.0-jsc11, jsc11, jsc
 Architectures: amd64, arm64v8
 GitFetch: refs/heads/packaging
-GitCommit: 624debcf17ea7faab01fa841bd4dcd9f308cf306
+GitCommit: d8acad350a52a20918c46c09cb0a0f5479400923
 Directory: pkg/docker
 File: Dockerfile.jsc11
 
-Tags: 1.33.0-minimal, minimal, latest
+Tags: 1.34.0-minimal, minimal, latest
 Architectures: amd64, arm64v8
 GitFetch: refs/heads/packaging
-GitCommit: 624debcf17ea7faab01fa841bd4dcd9f308cf306
+GitCommit: d8acad350a52a20918c46c09cb0a0f5479400923
 Directory: pkg/docker
 File: Dockerfile.minimal
 
-Tags: 1.33.0-node20, node20
+Tags: 1.34.0-node20, node20
 Architectures: amd64, arm64v8
 GitFetch: refs/heads/packaging
-GitCommit: 624debcf17ea7faab01fa841bd4dcd9f308cf306
+GitCommit: d8acad350a52a20918c46c09cb0a0f5479400923
 Directory: pkg/docker
 File: Dockerfile.node20
 
-Tags: 1.33.0-node22, node22, node
+Tags: 1.34.0-node22, node22, node
 Architectures: amd64, arm64v8
 GitFetch: refs/heads/packaging
-GitCommit: 624debcf17ea7faab01fa841bd4dcd9f308cf306
+GitCommit: d8acad350a52a20918c46c09cb0a0f5479400923
 Directory: pkg/docker
 File: Dockerfile.node22
 
-Tags: 1.33.0-perl5.38, perl5.38
+Tags: 1.34.0-perl5.38, perl5.38
 Architectures: amd64, arm64v8
 GitFetch: refs/heads/packaging
-GitCommit: 624debcf17ea7faab01fa841bd4dcd9f308cf306
+GitCommit: d8acad350a52a20918c46c09cb0a0f5479400923
 Directory: pkg/docker
 File: Dockerfile.perl5.38
 
-Tags: 1.33.0-perl5.40, perl5.40, perl5, perl
+Tags: 1.34.0-perl5.40, perl5.40, perl5, perl
 Architectures: amd64, arm64v8
 GitFetch: refs/heads/packaging
-GitCommit: 624debcf17ea7faab01fa841bd4dcd9f308cf306
+GitCommit: d8acad350a52a20918c46c09cb0a0f5479400923
 Directory: pkg/docker
 File: Dockerfile.perl5.40
 
-Tags: 1.33.0-php8.2, php8.2
+Tags: 1.34.0-php8.3, php8.3
 Architectures: amd64, arm64v8
 GitFetch: refs/heads/packaging
-GitCommit: 624debcf17ea7faab01fa841bd4dcd9f308cf306
+GitCommit: d8acad350a52a20918c46c09cb0a0f5479400923
 Directory: pkg/docker
-File: Dockerfile.php8.2
+File: Dockerfile.php8.3
 
-Tags: 1.33.0-php8.3, php8.3, php8, php
+Tags: 1.34.0-php8.4, php8.4, php8, php
 Architectures: amd64, arm64v8
 GitFetch: refs/heads/packaging
-GitCommit: 624debcf17ea7faab01fa841bd4dcd9f308cf306
+GitCommit: d8acad350a52a20918c46c09cb0a0f5479400923
 Directory: pkg/docker
-File: Dockerfile.php8.3
+File: Dockerfile.php8.4
 
-Tags: 1.33.0-python3.11, python3.11
+Tags: 1.34.0-python3.12, python3.12
 Architectures: amd64, arm64v8
 GitFetch: refs/heads/packaging
-GitCommit: 624debcf17ea7faab01fa841bd4dcd9f308cf306
+GitCommit: d8acad350a52a20918c46c09cb0a0f5479400923
 Directory: pkg/docker
-File: Dockerfile.python3.11
+File: Dockerfile.python3.12
 
-Tags: 1.33.0-python3.11-slim, python3.11-slim
+Tags: 1.34.0-python3.12-slim, python3.12-slim
 Architectures: amd64, arm64v8
 GitFetch: refs/heads/packaging
-GitCommit: 624debcf17ea7faab01fa841bd4dcd9f308cf306
+GitCommit: d8acad350a52a20918c46c09cb0a0f5479400923
 Directory: pkg/docker
-File: Dockerfile.python3.11-slim
+File: Dockerfile.python3.12-slim
 
-Tags: 1.33.0-python3.12, python3.12, python3, python
+Tags: 1.34.0-python3.13, python3.13, python3, python
 Architectures: amd64, arm64v8
 GitFetch: refs/heads/packaging
-GitCommit: 624debcf17ea7faab01fa841bd4dcd9f308cf306
+GitCommit: d8acad350a52a20918c46c09cb0a0f5479400923
 Directory: pkg/docker
-File: Dockerfile.python3.12
+File: Dockerfile.python3.13
 
-Tags: 1.33.0-python3.12-slim, python3.12-slim, python3-slim, python-slim
+Tags: 1.34.0-python3.13-slim, python3.13-slim, python3-slim, python-slim
 Architectures: amd64, arm64v8
 GitFetch: refs/heads/packaging
-GitCommit: 624debcf17ea7faab01fa841bd4dcd9f308cf306
+GitCommit: d8acad350a52a20918c46c09cb0a0f5479400923
 Directory: pkg/docker
-File: Dockerfile.python3.12-slim
+File: Dockerfile.python3.13-slim
 
-Tags: 1.33.0-ruby3.2, ruby3.2
+Tags: 1.34.0-ruby3.2, ruby3.2
 Architectures: amd64, arm64v8
 GitFetch: refs/heads/packaging
-GitCommit: 624debcf17ea7faab01fa841bd4dcd9f308cf306
+GitCommit: d8acad350a52a20918c46c09cb0a0f5479400923
 Directory: pkg/docker
 File: Dockerfile.ruby3.2
 
-Tags: 1.33.0-ruby3.3, ruby3.3, ruby3, ruby
+Tags: 1.34.0-ruby3.3, ruby3.3, ruby3, ruby
 Architectures: amd64, arm64v8
 GitFetch: refs/heads/packaging
-GitCommit: 624debcf17ea7faab01fa841bd4dcd9f308cf306
+GitCommit: d8acad350a52a20918c46c09cb0a0f5479400923
 Directory: pkg/docker
 File: Dockerfile.ruby3.3
 
-Tags: 1.33.0-wasm, wasm
+Tags: 1.34.0-wasm, wasm
 Architectures: amd64, arm64v8
 GitFetch: refs/heads/packaging
-GitCommit: 624debcf17ea7faab01fa841bd4dcd9f308cf306
+GitCommit: d8acad350a52a20918c46c09cb0a0f5479400923
 Directory: pkg/docker
 File: Dockerfile.wasm
diff --git a/_bashbrew-list b/_bashbrew-list
index faa2892..3054837 100644
--- a/_bashbrew-list
+++ b/_bashbrew-list
@@ -1,20 +1,20 @@
-unit:1.33.0-go1.22
-unit:1.33.0-go1.23
-unit:1.33.0-jsc11
-unit:1.33.0-minimal
-unit:1.33.0-node20
-unit:1.33.0-node22
-unit:1.33.0-perl5.38
-unit:1.33.0-perl5.40
-unit:1.33.0-php8.2
-unit:1.33.0-php8.3
-unit:1.33.0-python3.11
-unit:1.33.0-python3.11-slim
-unit:1.33.0-python3.12
-unit:1.33.0-python3.12-slim
-unit:1.33.0-ruby3.2
-unit:1.33.0-ruby3.3
-unit:1.33.0-wasm
+unit:1.34.0-go1.22
+unit:1.34.0-go1.23
+unit:1.34.0-jsc11
+unit:1.34.0-minimal
+unit:1.34.0-node20
+unit:1.34.0-node22
+unit:1.34.0-perl5.38
+unit:1.34.0-perl5.40
+unit:1.34.0-php8.3
+unit:1.34.0-php8.4
+unit:1.34.0-python3.12
+unit:1.34.0-python3.12-slim
+unit:1.34.0-python3.13
+unit:1.34.0-python3.13-slim
+unit:1.34.0-ruby3.2
+unit:1.34.0-ruby3.3
+unit:1.34.0-wasm
 unit:go
 unit:go1
 unit:go1.22
@@ -32,15 +32,15 @@ unit:perl5.38
 unit:perl5.40
 unit:php
 unit:php8
-unit:php8.2
 unit:php8.3
+unit:php8.4
 unit:python
 unit:python3
 unit:python3-slim
-unit:python3.11
-unit:python3.11-slim
 unit:python3.12
 unit:python3.12-slim
+unit:python3.13
+unit:python3.13-slim
 unit:python-slim
 unit:ruby
 unit:ruby3
diff --git a/_bashbrew-list-build-order b/_bashbrew-list-build-order
index e2d46c8..ea155fe 100644
--- a/_bashbrew-list-build-order
+++ b/_bashbrew-list-build-order
@@ -7,10 +7,10 @@ unit:node20
 unit:perl
 unit:perl5.38
 unit:php
-unit:php8.2
+unit:php8.3
 unit:python
-unit:python3.11
-unit:python3.11-slim
+unit:python3.12
+unit:python3.12-slim
 unit:python-slim
 unit:ruby
 unit:ruby3.2
diff --git a/unit_go/Dockerfile.go1.23 b/unit_go/Dockerfile.go1.23
index a62be79..a1a6460 100644
--- a/unit_go/Dockerfile.go1.23
+++ b/unit_go/Dockerfile.go1.23
@@ -6,16 +6,36 @@ LABEL org.opencontainers.image.url="https://unit.nginx.org"
 LABEL org.opencontainers.image.source="https://github.com/nginx/unit"
 LABEL org.opencontainers.image.documentation="https://unit.nginx.org/installation/#docker-images"
 LABEL org.opencontainers.image.vendor="NGINX Docker Maintainers <[email protected]>"
-LABEL org.opencontainers.image.version="1.33.0"
+LABEL org.opencontainers.image.version="1.34.0"
 
 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.83.0 \
+    && 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 \
-    && git clone --depth 1 -b 1.33.0-1 https://github.com/nginx/unit \
+    && git clone --depth 1 -b 1.34.0-1 https://github.com/nginx/unit \
     && cd unit \
     && NCPU="$(getconf _NPROCESSORS_ONLN)" \
     && DEB_HOST_MULTIARCH="$(dpkg-architecture -q DEB_HOST_MULTIARCH)" \
@@ -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 \
diff --git a/unit_go1.22/Dockerfile.go1.22 b/unit_go1.22/Dockerfile.go1.22
index 796a671..6059fc4 100644
--- a/unit_go1.22/Dockerfile.go1.22
+++ b/unit_go1.22/Dockerfile.go1.22
@@ -6,16 +6,36 @@ LABEL org.opencontainers.image.url="https://unit.nginx.org"
 LABEL org.opencontainers.image.source="https://github.com/nginx/unit"
 LABEL org.opencontainers.image.documentation="https://unit.nginx.org/installation/#docker-images"
 LABEL org.opencontainers.image.vendor="NGINX Docker Maintainers <[email protected]>"
-LABEL org.opencontainers.image.version="1.33.0"
+LABEL org.opencontainers.image.version="1.34.0"
 
 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.83.0 \
+    && 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 \
-    && git clone --depth 1 -b 1.33.0-1 https://github.com/nginx/unit \
+    && git clone --depth 1 -b 1.34.0-1 https://github.com/nginx/unit \
     && cd unit \
     && NCPU="$(getconf _NPROCESSORS_ONLN)" \
     && DEB_HOST_MULTIARCH="$(dpkg-architecture -q DEB_HOST_MULTIARCH)" \
@@ -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 \
diff --git a/unit_jsc/Dockerfile.jsc11 b/unit_jsc/Dockerfile.jsc11
index d133d5b..f97e0e7 100644
--- a/unit_jsc/Dockerfile.jsc11
+++ b/unit_jsc/Dockerfile.jsc11
@@ -6,16 +6,36 @@ LABEL org.opencontainers.image.url="https://unit.nginx.org"
 LABEL org.opencontainers.image.source="https://github.com/nginx/unit"
 LABEL org.opencontainers.image.documentation="https://unit.nginx.org/installation/#docker-images"
 LABEL org.opencontainers.image.vendor="NGINX Docker Maintainers <[email protected]>"
-LABEL org.opencontainers.image.version="1.33.0"
+LABEL org.opencontainers.image.version="1.34.0"
 
 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.83.0 \
+    && 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 \
-    && git clone --depth 1 -b 1.33.0-1 https://github.com/nginx/unit \
+    && git clone --depth 1 -b 1.34.0-1 https://github.com/nginx/unit \
     && cd unit \
     && NCPU="$(getconf _NPROCESSORS_ONLN)" \
     && DEB_HOST_MULTIARCH="$(dpkg-architecture -q DEB_HOST_MULTIARCH)" \
@@ -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 \
diff --git a/unit_latest/Dockerfile.minimal b/unit_latest/Dockerfile.minimal
index 3880de7..9bff9d4 100644
--- a/unit_latest/Dockerfile.minimal
+++ b/unit_latest/Dockerfile.minimal
@@ -6,16 +6,36 @@ LABEL org.opencontainers.image.url="https://unit.nginx.org"
 LABEL org.opencontainers.image.source="https://github.com/nginx/unit"
 LABEL org.opencontainers.image.documentation="https://unit.nginx.org/installation/#docker-images"
 LABEL org.opencontainers.image.vendor="NGINX Docker Maintainers <[email protected]>"
-LABEL org.opencontainers.image.version="1.33.0"
+LABEL org.opencontainers.image.version="1.34.0"
 
 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.83.0 \
+    && 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 \
-    && git clone --depth 1 -b 1.33.0-1 https://github.com/nginx/unit \
+    && git clone --depth 1 -b 1.34.0-1 https://github.com/nginx/unit \
     && cd unit \
     && NCPU="$(getconf _NPROCESSORS_ONLN)" \
     && DEB_HOST_MULTIARCH="$(dpkg-architecture -q DEB_HOST_MULTIARCH)" \
@@ -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 \
diff --git a/unit_node/Dockerfile.node22 b/unit_node/Dockerfile.node22
index 85f8aaa..208e59f 100644
--- a/unit_node/Dockerfile.node22
+++ b/unit_node/Dockerfile.node22
@@ -6,16 +6,36 @@ LABEL org.opencontainers.image.url="https://unit.nginx.org"
 LABEL org.opencontainers.image.source="https://github.com/nginx/unit"
 LABEL org.opencontainers.image.documentation="https://unit.nginx.org/installation/#docker-images"
 LABEL org.opencontainers.image.vendor="NGINX Docker Maintainers <[email protected]>"
-LABEL org.opencontainers.image.version="1.33.0"
+LABEL org.opencontainers.image.version="1.34.0"
 
 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.83.0 \
+    && 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 \
-    && git clone --depth 1 -b 1.33.0-1 https://github.com/nginx/unit \
+    && git clone --depth 1 -b 1.34.0-1 https://github.com/nginx/unit \
     && cd unit \
     && NCPU="$(getconf _NPROCESSORS_ONLN)" \
     && DEB_HOST_MULTIARCH="$(dpkg-architecture -q DEB_HOST_MULTIARCH)" \
@@ -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 \
diff --git a/unit_node20/Dockerfile.node20 b/unit_node20/Dockerfile.node20
index 5ae0979..86c3a83 100644
--- a/unit_node20/Dockerfile.node20
+++ b/unit_node20/Dockerfile.node20
@@ -6,16 +6,36 @@ LABEL org.opencontainers.image.url="https://unit.nginx.org"
 LABEL org.opencontainers.image.source="https://github.com/nginx/unit"
 LABEL org.opencontainers.image.documentation="https://unit.nginx.org/installation/#docker-images"
 LABEL org.opencontainers.image.vendor="NGINX Docker Maintainers <[email protected]>"
-LABEL org.opencontainers.image.version="1.33.0"
+LABEL org.opencontainers.image.version="1.34.0"
 
 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.83.0 \
+    && 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 \
-    && git clone --depth 1 -b 1.33.0-1 https://github.com/nginx/unit \
+    && git clone --depth 1 -b 1.34.0-1 https://github.com/nginx/unit \
     && cd unit \
     && NCPU="$(getconf _NPROCESSORS_ONLN)" \
     && DEB_HOST_MULTIARCH="$(dpkg-architecture -q DEB_HOST_MULTIARCH)" \
@@ -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 \
diff --git a/unit_perl/Dockerfile.perl5.40 b/unit_perl/Dockerfile.perl5.40
index aa67d7c..6b88a29 100644
--- a/unit_perl/Dockerfile.perl5.40
+++ b/unit_perl/Dockerfile.perl5.40
@@ -6,16 +6,36 @@ LABEL org.opencontainers.image.url="https://unit.nginx.org"
 LABEL org.opencontainers.image.source="https://github.com/nginx/unit"
 LABEL org.opencontainers.image.documentation="https://unit.nginx.org/installation/#docker-images"
 LABEL org.opencontainers.image.vendor="NGINX Docker Maintainers <[email protected]>"
-LABEL org.opencontainers.image.version="1.33.0"
+LABEL org.opencontainers.image.version="1.34.0"
 
 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.83.0 \
+    && 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 \
-    && git clone --depth 1 -b 1.33.0-1 https://github.com/nginx/unit \
+    && git clone --depth 1 -b 1.34.0-1 https://github.com/nginx/unit \
     && cd unit \
     && NCPU="$(getconf _NPROCESSORS_ONLN)" \
     && DEB_HOST_MULTIARCH="$(dpkg-architecture -q DEB_HOST_MULTIARCH)" \
@@ -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 \
diff --git a/unit_perl5.38/Dockerfile.perl5.38 b/unit_perl5.38/Dockerfile.perl5.38
index 88ac496..d5f3403 100644
--- a/unit_perl5.38/Dockerfile.perl5.38
+++ b/unit_perl5.38/Dockerfile.perl5.38
@@ -6,16 +6,36 @@ LABEL org.opencontainers.image.url="https://unit.nginx.org"
 LABEL org.opencontainers.image.source="https://github.com/nginx/unit"
 LABEL org.opencontainers.image.documentation="https://unit.nginx.org/installation/#docker-images"
 LABEL org.opencontainers.image.vendor="NGINX Docker Maintainers <[email protected]>"
-LABEL org.opencontainers.image.version="1.33.0"
+LABEL org.opencontainers.image.version="1.34.0"
 
 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.83.0 \
+    && 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 \
-    && git clone --depth 1 -b 1.33.0-1 https://github.com/nginx/unit \
+    && git clone --depth 1 -b 1.34.0-1 https://github.com/nginx/unit \
     && cd unit \
     && NCPU="$(getconf _NPROCESSORS_ONLN)" \
     && DEB_HOST_MULTIARCH="$(dpkg-architecture -q DEB_HOST_MULTIARCH)" \
@@ -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 \
diff --git a/unit_php8.2/Dockerfile.php8.2 b/unit_php/Dockerfile.php8.4
similarity index 73%
rename from unit_php8.2/Dockerfile.php8.2
rename to unit_php/Dockerfile.php8.4
index 354acf9..c6a36da 100644
--- a/unit_php8.2/Dockerfile.php8.2
+++ b/unit_php/Dockerfile.php8.4
@@ -1,21 +1,41 @@
-FROM php:8.2-cli-bookworm
+FROM php:8.4-cli-bookworm
 
-LABEL org.opencontainers.image.title="Unit (php8.2)"
+LABEL org.opencontainers.image.title="Unit (php8.4)"
 LABEL org.opencontainers.image.description="Official build of Unit for Docker."
 LABEL org.opencontainers.image.url="https://unit.nginx.org"
 LABEL org.opencontainers.image.source="https://github.com/nginx/unit"
 LABEL org.opencontainers.image.documentation="https://unit.nginx.org/installation/#docker-images"
 LABEL org.opencontainers.image.vendor="NGINX Docker Maintainers <[email protected]>"
-LABEL org.opencontainers.image.version="1.33.0"
+LABEL org.opencontainers.image.version="1.34.0"
 
 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.83.0 \
+    && 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 \
-    && git clone --depth 1 -b 1.33.0-1 https://github.com/nginx/unit \
+    && git clone --depth 1 -b 1.34.0-1 https://github.com/nginx/unit \
     && cd unit \
     && NCPU="$(getconf _NPROCESSORS_ONLN)" \
     && DEB_HOST_MULTIARCH="$(dpkg-architecture -q DEB_HOST_MULTIARCH)" \
@@ -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 \
diff --git a/unit_php/Dockerfile.php8.3 b/unit_php8.3/Dockerfile.php8.3
similarity index 74%
rename from unit_php/Dockerfile.php8.3
rename to unit_php8.3/Dockerfile.php8.3
index 98bd384..3174c02 100644
--- a/unit_php/Dockerfile.php8.3
+++ b/unit_php8.3/Dockerfile.php8.3
@@ -6,16 +6,36 @@ LABEL org.opencontainers.image.url="https://unit.nginx.org"
 LABEL org.opencontainers.image.source="https://github.com/nginx/unit"
 LABEL org.opencontainers.image.documentation="https://unit.nginx.org/installation/#docker-images"
 LABEL org.opencontainers.image.vendor="NGINX Docker Maintainers <[email protected]>"
-LABEL org.opencontainers.image.version="1.33.0"
+LABEL org.opencontainers.image.version="1.34.0"
 
 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.83.0 \
+    && 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 \
-    && git clone --depth 1 -b 1.33.0-1 https://github.com/nginx/unit \
+    && git clone --depth 1 -b 1.34.0-1 https://github.com/nginx/unit \
     && cd unit \
     && NCPU="$(getconf _NPROCESSORS_ONLN)" \
     && DEB_HOST_MULTIARCH="$(dpkg-architecture -q DEB_HOST_MULTIARCH)" \
@@ -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 \
diff --git a/unit_php8.2/docker-entrypoint.sh b/unit_php8.3/docker-entrypoint.sh
similarity index 100%
rename from unit_php8.2/docker-entrypoint.sh
rename to unit_php8.3/docker-entrypoint.sh
diff --git a/unit_php8.2/welcome.html b/unit_php8.3/welcome.html
similarity index 100%
rename from unit_php8.2/welcome.html
rename to unit_php8.3/welcome.html
diff --git a/unit_php8.2/welcome.json b/unit_php8.3/welcome.json
similarity index 100%
rename from unit_php8.2/welcome.json
rename to unit_php8.3/welcome.json
diff --git a/unit_php8.2/welcome.md b/unit_php8.3/welcome.md
similarity index 100%
rename from unit_php8.2/welcome.md
rename to unit_php8.3/welcome.md
diff --git a/unit_wasm/Dockerfile.wasm b/unit_python-slim/Dockerfile.python3.13-slim
similarity index 75%
copy from unit_wasm/Dockerfile.wasm
copy to unit_python-slim/Dockerfile.python3.13-slim
index 567f98a..6ca7761 100644
--- a/unit_wasm/Dockerfile.wasm
+++ b/unit_python-slim/Dockerfile.python3.13-slim
@@ -1,21 +1,41 @@
-FROM debian:bookworm-slim
+FROM python:3.13-slim-bookworm
 
-LABEL org.opencontainers.image.title="Unit (wasm)"
+LABEL org.opencontainers.image.title="Unit (python3.13-slim)"
 LABEL org.opencontainers.image.description="Official build of Unit for Docker."
 LABEL org.opencontainers.image.url="https://unit.nginx.org"
 LABEL org.opencontainers.image.source="https://github.com/nginx/unit"
 LABEL org.opencontainers.image.documentation="https://unit.nginx.org/installation/#docker-images"
 LABEL org.opencontainers.image.vendor="NGINX Docker Maintainers <[email protected]>"
-LABEL org.opencontainers.image.version="1.33.0"
+LABEL org.opencontainers.image.version="1.34.0"
 
 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.83.0 \
+    && 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 \
-    && git clone --depth 1 -b 1.33.0-1 https://github.com/nginx/unit \
+    && git clone --depth 1 -b 1.34.0-1 https://github.com/nginx/unit \
     && cd unit \
     && NCPU="$(getconf _NPROCESSORS_ONLN)" \
     && DEB_HOST_MULTIARCH="$(dpkg-architecture -q DEB_HOST_MULTIARCH)" \
@@ -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 \
@@ -45,35 +66,14 @@ RUN set -ex \
     && make -j $NCPU unitd \
     && install -pm755 build/sbin/unitd /usr/sbin/unitd \
     && make clean \
-    && apt-get install --no-install-recommends --no-install-suggests -y 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 \
-    && make -C pkg/contrib .wasmtime \
-    && install -pm 755 pkg/contrib/wasmtime/artifacts/lib/libwasmtime.so /usr/lib/$(dpkg-architecture -q DEB_HOST_MULTIARCH)/ \
+    && /bin/true \
     && ./configure $CONFIGURE_ARGS_MODULES --cc-opt="$CC_OPT" --modulesdir=/usr/lib/unit/debug-modules --debug \
-    && ./configure wasm --include-path=`pwd`/pkg/contrib/wasmtime/artifacts/include --lib-path=/usr/lib/$(dpkg-architecture -q DEB_HOST_MULTIARCH)/ && ./configure wasm-wasi-component \
-    && make -j $NCPU wasm-install wasm-wasi-component-install \
+    && ./configure python --config=/usr/local/bin/python3-config \
+    && make -j $NCPU python3-install \
     && make clean \
     && ./configure $CONFIGURE_ARGS_MODULES --cc-opt="$CC_OPT" --modulesdir=/usr/lib/unit/modules \
-    && ./configure wasm --include-path=`pwd`/pkg/contrib/wasmtime/artifacts/include --lib-path=/usr/lib/$(dpkg-architecture -q DEB_HOST_MULTIARCH)/ && ./configure wasm-wasi-component \
-    && make -j $NCPU wasm-install wasm-wasi-component-install \
+    && ./configure python --config=/usr/local/bin/python3-config \
+    && make -j $NCPU python3-install \
     && cd \
     && rm -rf /usr/src/unit \
     && for f in /usr/sbin/unitd /usr/lib/unit/modules/*.unit.so; do \
diff --git a/unit_python3.11-slim/Dockerfile.python3.11-slim b/unit_python/Dockerfile.python3.13
similarity index 73%
rename from unit_python3.11-slim/Dockerfile.python3.11-slim
rename to unit_python/Dockerfile.python3.13
index bb9b32a..dd6a91d 100644
--- a/unit_python3.11-slim/Dockerfile.python3.11-slim
+++ b/unit_python/Dockerfile.python3.13
@@ -1,21 +1,41 @@
-FROM python:3.11-slim-bookworm
+FROM python:3.13-bookworm
 
-LABEL org.opencontainers.image.title="Unit (python3.11-slim)"
+LABEL org.opencontainers.image.title="Unit (python3.13)"
 LABEL org.opencontainers.image.description="Official build of Unit for Docker."
 LABEL org.opencontainers.image.url="https://unit.nginx.org"
 LABEL org.opencontainers.image.source="https://github.com/nginx/unit"
 LABEL org.opencontainers.image.documentation="https://unit.nginx.org/installation/#docker-images"
 LABEL org.opencontainers.image.vendor="NGINX Docker Maintainers <[email protected]>"
-LABEL org.opencontainers.image.version="1.33.0"
+LABEL org.opencontainers.image.version="1.34.0"
 
 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.83.0 \
+    && 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 \
-    && git clone --depth 1 -b 1.33.0-1 https://github.com/nginx/unit \
+    && git clone --depth 1 -b 1.34.0-1 https://github.com/nginx/unit \
     && cd unit \
     && NCPU="$(getconf _NPROCESSORS_ONLN)" \
     && DEB_HOST_MULTIARCH="$(dpkg-architecture -q DEB_HOST_MULTIARCH)" \
@@ -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 \
diff --git a/unit_python3.11/Dockerfile.python3.11 b/unit_python3.11/Dockerfile.python3.11
deleted file mode 100644
index a0a06a4..0000000
diff --git a/unit_python-slim/Dockerfile.python3.12-slim b/unit_python3.12-slim/Dockerfile.python3.12-slim
similarity index 75%
rename from unit_python-slim/Dockerfile.python3.12-slim
rename to unit_python3.12-slim/Dockerfile.python3.12-slim
index 65ada57..f4f957c 100644
--- a/unit_python-slim/Dockerfile.python3.12-slim
+++ b/unit_python3.12-slim/Dockerfile.python3.12-slim
@@ -6,16 +6,36 @@ LABEL org.opencontainers.image.url="https://unit.nginx.org"
 LABEL org.opencontainers.image.source="https://github.com/nginx/unit"
 LABEL org.opencontainers.image.documentation="https://unit.nginx.org/installation/#docker-images"
 LABEL org.opencontainers.image.vendor="NGINX Docker Maintainers <[email protected]>"
-LABEL org.opencontainers.image.version="1.33.0"
+LABEL org.opencontainers.image.version="1.34.0"
 
 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.83.0 \
+    && 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 \
-    && git clone --depth 1 -b 1.33.0-1 https://github.com/nginx/unit \
+    && git clone --depth 1 -b 1.34.0-1 https://github.com/nginx/unit \
     && cd unit \
     && NCPU="$(getconf _NPROCESSORS_ONLN)" \
     && DEB_HOST_MULTIARCH="$(dpkg-architecture -q DEB_HOST_MULTIARCH)" \
@@ -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 \
diff --git a/unit_python3.11-slim/docker-entrypoint.sh b/unit_python3.12-slim/docker-entrypoint.sh
similarity index 100%
rename from unit_python3.11-slim/docker-entrypoint.sh
rename to unit_python3.12-slim/docker-entrypoint.sh
diff --git a/unit_python3.11-slim/welcome.html b/unit_python3.12-slim/welcome.html
similarity index 100%
rename from unit_python3.11-slim/welcome.html
rename to unit_python3.12-slim/welcome.html
diff --git a/unit_python3.11-slim/welcome.json b/unit_python3.12-slim/welcome.json
similarity index 100%
rename from unit_python3.11-slim/welcome.json
rename to unit_python3.12-slim/welcome.json
diff --git a/unit_python3.11-slim/welcome.md b/unit_python3.12-slim/welcome.md
similarity index 100%
rename from unit_python3.11-slim/welcome.md
rename to unit_python3.12-slim/welcome.md
diff --git a/unit_python/Dockerfile.python3.12 b/unit_python3.12/Dockerfile.python3.12
similarity index 75%
rename from unit_python/Dockerfile.python3.12
rename to unit_python3.12/Dockerfile.python3.12
index f32fd45..8402dae 100644
--- a/unit_python/Dockerfile.python3.12
+++ b/unit_python3.12/Dockerfile.python3.12
@@ -6,16 +6,36 @@ LABEL org.opencontainers.image.url="https://unit.nginx.org"
 LABEL org.opencontainers.image.source="https://github.com/nginx/unit"
 LABEL org.opencontainers.image.documentation="https://unit.nginx.org/installation/#docker-images"
 LABEL org.opencontainers.image.vendor="NGINX Docker Maintainers <[email protected]>"
-LABEL org.opencontainers.image.version="1.33.0"
+LABEL org.opencontainers.image.version="1.34.0"
 
 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.83.0 \
+    && 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 \
-    && git clone --depth 1 -b 1.33.0-1 https://github.com/nginx/unit \
+    && git clone --depth 1 -b 1.34.0-1 https://github.com/nginx/unit \
     && cd unit \
     && NCPU="$(getconf _NPROCESSORS_ONLN)" \
     && DEB_HOST_MULTIARCH="$(dpkg-architecture -q DEB_HOST_MULTIARCH)" \
@@ -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 \
diff --git a/unit_python3.11/docker-entrypoint.sh b/unit_python3.12/docker-entrypoint.sh
similarity index 100%
rename from unit_python3.11/docker-entrypoint.sh
rename to unit_python3.12/docker-entrypoint.sh
diff --git a/unit_python3.11/welcome.html b/unit_python3.12/welcome.html
similarity index 100%
rename from unit_python3.11/welcome.html
rename to unit_python3.12/welcome.html
diff --git a/unit_python3.11/welcome.json b/unit_python3.12/welcome.json
similarity index 100%
rename from unit_python3.11/welcome.json
rename to unit_python3.12/welcome.json
diff --git a/unit_python3.11/welcome.md b/unit_python3.12/welcome.md
similarity index 100%
rename from unit_python3.11/welcome.md
rename to unit_python3.12/welcome.md
diff --git a/unit_ruby/Dockerfile.ruby3.3 b/unit_ruby/Dockerfile.ruby3.3
index b83c754..45fdc96 100644
--- a/unit_ruby/Dockerfile.ruby3.3
+++ b/unit_ruby/Dockerfile.ruby3.3
@@ -6,16 +6,36 @@ LABEL org.opencontainers.image.url="https://unit.nginx.org"
 LABEL org.opencontainers.image.source="https://github.com/nginx/unit"
 LABEL org.opencontainers.image.documentation="https://unit.nginx.org/installation/#docker-images"
 LABEL org.opencontainers.image.vendor="NGINX Docker Maintainers <[email protected]>"
-LABEL org.opencontainers.image.version="1.33.0"
+LABEL org.opencontainers.image.version="1.34.0"
 
 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.83.0 \
+    && 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 \
-    && git clone --depth 1 -b 1.33.0-1 https://github.com/nginx/unit \
+    && git clone --depth 1 -b 1.34.0-1 https://github.com/nginx/unit \
     && cd unit \
     && NCPU="$(getconf _NPROCESSORS_ONLN)" \
     && DEB_HOST_MULTIARCH="$(dpkg-architecture -q DEB_HOST_MULTIARCH)" \
@@ -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 \
diff --git a/unit_ruby3.2/Dockerfile.ruby3.2 b/unit_ruby3.2/Dockerfile.ruby3.2
index d3ab399..9330227 100644
--- a/unit_ruby3.2/Dockerfile.ruby3.2
+++ b/unit_ruby3.2/Dockerfile.ruby3.2
@@ -6,16 +6,36 @@ LABEL org.opencontainers.image.url="https://unit.nginx.org"
 LABEL org.opencontainers.image.source="https://github.com/nginx/unit"
 LABEL org.opencontainers.image.documentation="https://unit.nginx.org/installation/#docker-images"
 LABEL org.opencontainers.image.vendor="NGINX Docker Maintainers <[email protected]>"
-LABEL org.opencontainers.image.version="1.33.0"
+LABEL org.opencontainers.image.version="1.34.0"
 
 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.83.0 \
+    && 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 \
-    && git clone --depth 1 -b 1.33.0-1 https://github.com/nginx/unit \
+    && git clone --depth 1 -b 1.34.0-1 https://github.com/nginx/unit \
     && cd unit \
     && NCPU="$(getconf _NPROCESSORS_ONLN)" \
     && DEB_HOST_MULTIARCH="$(dpkg-architecture -q DEB_HOST_MULTIARCH)" \
@@ -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 \
diff --git a/unit_wasm/Dockerfile.wasm b/unit_wasm/Dockerfile.wasm
index 567f98a..cb6c51a 100644
--- a/unit_wasm/Dockerfile.wasm
+++ b/unit_wasm/Dockerfile.wasm
@@ -6,16 +6,36 @@ LABEL org.opencontainers.image.url="https://unit.nginx.org"
 LABEL org.opencontainers.image.source="https://github.com/nginx/unit"
 LABEL org.opencontainers.image.documentation="https://unit.nginx.org/installation/#docker-images"
 LABEL org.opencontainers.image.vendor="NGINX Docker Maintainers <[email protected]>"
-LABEL org.opencontainers.image.version="1.33.0"
+LABEL org.opencontainers.image.version="1.34.0"
 
 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.83.0 \
+    && 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 \
-    && git clone --depth 1 -b 1.33.0-1 https://github.com/nginx/unit \
+    && git clone --depth 1 -b 1.34.0-1 https://github.com/nginx/unit \
     && cd unit \
     && NCPU="$(getconf _NPROCESSORS_ONLN)" \
     && DEB_HOST_MULTIARCH="$(dpkg-architecture -q DEB_HOST_MULTIARCH)" \
@@ -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 \
@@ -45,26 +66,6 @@ RUN set -ex \
     && make -j $NCPU unitd \
     && install -pm755 build/sbin/unitd /usr/sbin/unitd \
     && make clean \
-    && apt-get install --no-install-recommends --no-install-suggests -y 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 \
     && make -C pkg/contrib .wasmtime \
     && install -pm 755 pkg/contrib/wasmtime/artifacts/lib/libwasmtime.so /usr/lib/$(dpkg-architecture -q DEB_HOST_MULTIARCH)/ \
     && ./configure $CONFIGURE_ARGS_MODULES --cc-opt="$CC_OPT" --modulesdir=/usr/lib/unit/debug-modules --debug \

Relevant Maintainers:

@LaurentGoderre
Copy link
Member

I opened a PR to optimize this and ensure rust is not left behind in the image: nginx/unit#1522

@tianon
Copy link
Member

tianon commented Dec 20, 2024

I don't love the duplication (between variants or between this and Rust), but I think it's probably OK. I do wonder how many of these are the same compilation arguments, and thus could possibly do something like COPY --from=unit:X.Y.Z-other-variant instead of building again. I left some comments on nginx/unit#1522 also.

@tianon
Copy link
Member

tianon commented Dec 20, 2024

(Not leaving behind Rust in the final images is probably important though 👀)

@LaurentGoderre
Copy link
Member

@tianon I tried the copy approach but each variant seems to be compiled with different libraries depending on the variant.

@thresheek
Copy link
Contributor Author

First of all, thanks for the suggested improvements! I did not expect you to go as far as submitting a PR upstream :-)

I'm pretty sure unitd can be copied between the variants, since they are all supposed to be the same binaries. The modules for different languages are supposed to be the only difference between the images.

@LaurentGoderre
Copy link
Member

Ah! O will amend my PR

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants