Compare commits

...

10 Commits

Author SHA1 Message Date
ae01f6599d Added gitea building 1.32.1
Some checks failed
Build Docker Image / build-and-deploy-image (push) Failing after 3m40s
2024-07-08 12:41:33 +03:00
Andrei Zeliankou
48d7917059 Added version 1.32.1 CHANGES 2024-03-21 13:47:41 +00:00
Andrei Zeliankou
3f228d6b6f Generated Dockerfiles for Unit 1.32.1 2024-03-15 15:15:26 +00:00
Andrei Zeliankou
8ca4962d9a Edited changes.xml for the 1.32.1 release 2024-03-15 15:13:59 +00:00
Andrew Clayton
777b7c8782 Wasm-wc: Fix application restarts
Liam reported a problem when trying to restart wasm-wasi-component based
applications using the /control/applications/APPLICATION_NAME/restart
endpoint.

The application would become unresponsive.

What was happening was the old application process(es) weren't
exit(3)ing and so while we were starting new application processes, the
old ones were still hanging around in a non-functioning state.

When we are terminating an application it must call exit(3).

So that's what we do. We use the return value of nxt_unit_run() as the
exit status.

Due to exit(3)ing we also need to now explicitly handle the return on
error case.

Reported-by: Liam Crilly <liam@nginx.com>
Fixes: 20ada4b5c ("Wasm-wc: Core of initial Wasm component model language module support")
Closes: https://github.com/nginx/unit/issues/1179
Tested-by: Liam Crilly <liam@nginx.com>
Tested-by: Danielle De Leo <d.deleo@f5.com>
Co-developed-by: Dan Callahan <d.callahan@f5.com>
Signed-off-by: Dan Callahan <d.callahan@f5.com>
Signed-off-by: Andrew Clayton <a.clayton@nginx.com>
2024-03-15 15:12:59 +00:00
Andrei Zeliankou
d7ff6bb4a1 Tests: NJS cacheable variables with access log
Reproduces issue https://github.com/nginx/unit/issues/1169.
2024-03-15 15:12:38 +00:00
Zhidao HONG
6359c74da1 Var: Fix cacheable issue for njs variable access
The variables accessed with JS template literal should not be cacheable.
Since it is parsed by njs engine, Unit can't create indexes on these
variables for caching purpose. For example:

   {
       "format": "`{bodyLength:\"${vars.body_bytes_sent}\",status:\"${vars.status}\"}\n`"
   }

The variables like the above are not cacheable.

Closes: https://github.com/nginx/unit/issues/1169
2024-03-15 15:11:30 +00:00
Andrei Zeliankou
97ff09903b Version bump 2024-03-15 15:10:24 +00:00
Andrei Zeliankou
088117008c Added version 1.32.0 CHANGES 2024-02-27 12:24:44 +00:00
Andrei Zeliankou
ace553dca4 Generated Dockerfiles for Unit 1.32.0 2024-02-27 12:24:44 +00:00
24 changed files with 333 additions and 41 deletions

View File

@@ -0,0 +1,69 @@
name: Build Docker Image
on:
push:
branches:
- main
schedule:
- cron: '@monthly'
jobs:
build-and-deploy-image:
runs-on: ubuntu-latest
container:
image: catthehacker/ubuntu:act-latest
env:
DOCKER_ORG: technocloud-public
RUNNER_TOOL_CACHE: /toolcache
steps:
- name: Checkout
uses: actions/checkout@v4
with:
github-server-url: https://gitea.technocloud.ee
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker BuildX
uses: docker/setup-buildx-action@v3
with:
platforms: linux/amd64,linux/arm64
- name: Login to DockerHub
uses: docker/login-action@v3
with:
registry: gitea.technocloud.ee
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Get Meta
id: meta
run: |
echo REPO_NAME=$(echo ${GITHUB_REPOSITORY} | awk -F"/" '{print $2}') >> $GITHUB_OUTPUT
- name: Build and push Python 3.10
uses: docker/build-push-action@v5
with:
context: pkg/docker
file: pkg/docker/Dockerfile.python3.10
platforms: linux/amd64,linux/arm64
push: true
tags: gitea.technocloud.ee/${{ env.DOCKER_ORG }}/${{ steps.meta.outputs.REPO_NAME }}:python3.10
- name: Build and push Python 3.11
uses: docker/build-push-action@v5
with:
context: pkg/docker
file: pkg/docker/Dockerfile.python3.11
platforms: linux/amd64,linux/arm64
push: true
tags: gitea.technocloud.ee/${{ env.DOCKER_ORG }}/${{ steps.meta.outputs.REPO_NAME }}:python3.11
- name: Build and push Python 3.12
uses: docker/build-push-action@v5
with:
context: pkg/docker
file: pkg/docker/Dockerfile.python3.12
platforms: linux/amd64,linux/arm64
push: true
tags: gitea.technocloud.ee/${{ env.DOCKER_ORG }}/${{ steps.meta.outputs.REPO_NAME }}:python3.12

62
CHANGES
View File

@@ -1,4 +1,66 @@
Changes with Unit 1.32.1 26 Mar 2024
*) Bugfix: NJS variables in templates may have incorrect values due to
improper caching.
*) Bugfix: Wasm application process hangs after receiving restart signal
from the control.
Changes with Unit 1.32.0 27 Feb 2024
*) Feature: WebAssembly Components using WASI interfaces defined in
wasi:http/proxy@0.2.0.
*) Feature: conditional access logging.
*) Feature: NJS variables access.
*) Feature: $request_id variable contains a string that is formed using
random data and can be used as a unique request identifier.
*) Feature: options to set control socket permissions.
*) Feature: Ruby arrays in response headers, improving compatibility
with Rack v3.0.
*) Feature: Python bytearray response bodies for ASGI applications.
*) Bugfix: router could crash while sending large files. Thanks to
rustedsword.
*) Bugfix: serving static files from a network filesystem could lead to
error.
*) Bugfix: "uidmap" and "gidmap" isolation options validation.
*) Bugfix: abstract UNIX socket name could be corrupted during
configuration validation. Thanks to Alejandro Colomar.
*) Bugfix: HTTP header field value encoding could be misinterpreted in
Python module.
*) Bugfix: Node.js http.createServer() accepts and ignores the "options"
argument, improving compatibility with strapi applications, among
others.
*) Bugfix: ServerRequest.flushHeaders() implemented in Node.js module to
make it compatible with Next.js.
*) Bugfix: ServerRequest.httpVersion variable format in Node.js module.
*) Bugfix: Node.js module handles standard library imports prefixed with
"node:", making it possible to run newer Nuxt applications, among
others.
*) Bugfix: Node.js tarball location changed to avoid build/install
errors.
*) Bugfix: Go module sets environment variables necessary for building
on macOS/arm64 systems.
Changes with Unit 1.31.1 19 Oct 2023
*) Feature: allow to set the HTTP response status in Wasm module.

View File

@@ -5,6 +5,51 @@
<change_log title="unit">
<changes apply="unit-php
unit-python unit-python2.7
unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
unit-python3.8 unit-python3.9 unit-python3.10 unit-python3.11
unit-python3.12
unit-go
unit-perl
unit-ruby
unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11 unit-jsc13
unit-jsc14 unit-jsc15 unit-jsc16 unit-jsc17 unit-jsc18
unit-jsc19 unit-jsc20 unit-jsc21
unit-wasm"
ver="1.32.1" rev="1"
date="2024-03-26" time="18:00:00 +0000"
packager="Nginx Packaging &lt;nginx-packaging@f5.com&gt;">
<change>
<para>
NGINX Unit updated to 1.32.1.
</para>
</change>
</changes>
<changes apply="unit" ver="1.32.1" rev="1"
date="2024-03-26" time="18:00:00 +0000"
packager="Nginx Packaging &lt;nginx-packaging@f5.com&gt;">
<change type="bugfix">
<para>
NJS variables in templates may have incorrect values due to improper caching.
</para>
</change>
<change type="bugfix">
<para>
Wasm application process hangs after receiving restart signal from the control.
</para>
</change>
</changes>
<changes apply="unit-jsc21" ver="1.32.0" rev="1"
date="2023-10-17" time="16:00:00 -0700"
packager="Nginx Packaging &lt;nginx-packaging@f5.com&gt;">
@@ -44,7 +89,7 @@ Initial release of Python 3.12 module for NGINX Unit.
unit-jsc19 unit-jsc20 unit-jsc21
unit-wasm"
ver="1.32.0" rev="1"
date="" time=""
date="2024-02-27" time="18:00:00 +0000"
packager="Nginx Packaging &lt;nginx-packaging@f5.com&gt;">
<change>
@@ -58,7 +103,7 @@ NGINX Unit updated to 1.32.0.
<changes apply="unit" ver="1.32.0" rev="1"
date="" time=""
date="2024-02-27" time="18:00:00 +0000"
packager="Nginx Packaging &lt;nginx-packaging@f5.com&gt;">
<change type="feature">

View File

@@ -1,6 +1,6 @@
openapi: 3.0.0
info:
title: "NGINX Unit 1.31.1"
title: "NGINX Unit 1.32.1"
description: "NGINX Unit is a lightweight and versatile application runtime
that provides the essential components for your web application as a
single open-source server: running application code, serving static assets,

View File

@@ -6,7 +6,7 @@ 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 <docker-maint@nginx.com>"
LABEL org.opencontainers.image.version="1.31.1"
LABEL org.opencontainers.image.version="1.32.1"
RUN set -ex \
&& savedAptMark="$(apt-mark showmanual)" \
@@ -15,7 +15,7 @@ RUN set -ex \
&& 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.31.1-1 https://github.com/nginx/unit \
&& git clone --depth 1 -b 1.32.1-1 https://github.com/nginx/unit \
&& cd unit \
&& NCPU="$(getconf _NPROCESSORS_ONLN)" \
&& DEB_HOST_MULTIARCH="$(dpkg-architecture -q DEB_HOST_MULTIARCH)" \

View File

@@ -6,7 +6,7 @@ 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 <docker-maint@nginx.com>"
LABEL org.opencontainers.image.version="1.31.1"
LABEL org.opencontainers.image.version="1.32.1"
RUN set -ex \
&& savedAptMark="$(apt-mark showmanual)" \
@@ -15,7 +15,7 @@ RUN set -ex \
&& 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.31.1-1 https://github.com/nginx/unit \
&& git clone --depth 1 -b 1.32.1-1 https://github.com/nginx/unit \
&& cd unit \
&& NCPU="$(getconf _NPROCESSORS_ONLN)" \
&& DEB_HOST_MULTIARCH="$(dpkg-architecture -q DEB_HOST_MULTIARCH)" \

View File

@@ -6,7 +6,7 @@ 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 <docker-maint@nginx.com>"
LABEL org.opencontainers.image.version="1.31.1"
LABEL org.opencontainers.image.version="1.32.1"
RUN set -ex \
&& savedAptMark="$(apt-mark showmanual)" \
@@ -15,7 +15,7 @@ RUN set -ex \
&& 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.31.1-1 https://github.com/nginx/unit \
&& git clone --depth 1 -b 1.32.1-1 https://github.com/nginx/unit \
&& cd unit \
&& NCPU="$(getconf _NPROCESSORS_ONLN)" \
&& DEB_HOST_MULTIARCH="$(dpkg-architecture -q DEB_HOST_MULTIARCH)" \

View File

@@ -6,7 +6,7 @@ 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 <docker-maint@nginx.com>"
LABEL org.opencontainers.image.version="1.31.1"
LABEL org.opencontainers.image.version="1.32.1"
RUN set -ex \
&& savedAptMark="$(apt-mark showmanual)" \
@@ -15,7 +15,7 @@ RUN set -ex \
&& 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.31.1-1 https://github.com/nginx/unit \
&& git clone --depth 1 -b 1.32.1-1 https://github.com/nginx/unit \
&& cd unit \
&& NCPU="$(getconf _NPROCESSORS_ONLN)" \
&& DEB_HOST_MULTIARCH="$(dpkg-architecture -q DEB_HOST_MULTIARCH)" \

View File

@@ -6,7 +6,7 @@ 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 <docker-maint@nginx.com>"
LABEL org.opencontainers.image.version="1.31.1"
LABEL org.opencontainers.image.version="1.32.1"
RUN set -ex \
&& savedAptMark="$(apt-mark showmanual)" \
@@ -15,7 +15,7 @@ RUN set -ex \
&& 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.31.1-1 https://github.com/nginx/unit \
&& git clone --depth 1 -b 1.32.1-1 https://github.com/nginx/unit \
&& cd unit \
&& NCPU="$(getconf _NPROCESSORS_ONLN)" \
&& DEB_HOST_MULTIARCH="$(dpkg-architecture -q DEB_HOST_MULTIARCH)" \

View File

@@ -6,7 +6,7 @@ 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 <docker-maint@nginx.com>"
LABEL org.opencontainers.image.version="1.31.1"
LABEL org.opencontainers.image.version="1.32.1"
RUN set -ex \
&& savedAptMark="$(apt-mark showmanual)" \
@@ -15,7 +15,7 @@ RUN set -ex \
&& 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.31.1-1 https://github.com/nginx/unit \
&& git clone --depth 1 -b 1.32.1-1 https://github.com/nginx/unit \
&& cd unit \
&& NCPU="$(getconf _NPROCESSORS_ONLN)" \
&& DEB_HOST_MULTIARCH="$(dpkg-architecture -q DEB_HOST_MULTIARCH)" \

View File

@@ -6,7 +6,7 @@ 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 <docker-maint@nginx.com>"
LABEL org.opencontainers.image.version="1.31.1"
LABEL org.opencontainers.image.version="1.32.1"
RUN set -ex \
&& savedAptMark="$(apt-mark showmanual)" \
@@ -15,7 +15,7 @@ RUN set -ex \
&& 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.31.1-1 https://github.com/nginx/unit \
&& git clone --depth 1 -b 1.32.1-1 https://github.com/nginx/unit \
&& cd unit \
&& NCPU="$(getconf _NPROCESSORS_ONLN)" \
&& DEB_HOST_MULTIARCH="$(dpkg-architecture -q DEB_HOST_MULTIARCH)" \

View File

@@ -6,7 +6,7 @@ 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 <docker-maint@nginx.com>"
LABEL org.opencontainers.image.version="1.31.1"
LABEL org.opencontainers.image.version="1.32.1"
RUN set -ex \
&& savedAptMark="$(apt-mark showmanual)" \
@@ -15,7 +15,7 @@ RUN set -ex \
&& 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.31.1-1 https://github.com/nginx/unit \
&& git clone --depth 1 -b 1.32.1-1 https://github.com/nginx/unit \
&& cd unit \
&& NCPU="$(getconf _NPROCESSORS_ONLN)" \
&& DEB_HOST_MULTIARCH="$(dpkg-architecture -q DEB_HOST_MULTIARCH)" \

View File

@@ -6,7 +6,7 @@ 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 <docker-maint@nginx.com>"
LABEL org.opencontainers.image.version="1.31.1"
LABEL org.opencontainers.image.version="1.32.1"
RUN set -ex \
&& savedAptMark="$(apt-mark showmanual)" \
@@ -15,7 +15,7 @@ RUN set -ex \
&& 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.31.1-1 https://github.com/nginx/unit \
&& git clone --depth 1 -b 1.32.1-1 https://github.com/nginx/unit \
&& cd unit \
&& NCPU="$(getconf _NPROCESSORS_ONLN)" \
&& DEB_HOST_MULTIARCH="$(dpkg-architecture -q DEB_HOST_MULTIARCH)" \

View File

@@ -6,7 +6,7 @@ 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 <docker-maint@nginx.com>"
LABEL org.opencontainers.image.version="1.31.1"
LABEL org.opencontainers.image.version="1.32.1"
RUN set -ex \
&& savedAptMark="$(apt-mark showmanual)" \
@@ -15,7 +15,7 @@ RUN set -ex \
&& 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.31.1-1 https://github.com/nginx/unit \
&& git clone --depth 1 -b 1.32.1-1 https://github.com/nginx/unit \
&& cd unit \
&& NCPU="$(getconf _NPROCESSORS_ONLN)" \
&& DEB_HOST_MULTIARCH="$(dpkg-architecture -q DEB_HOST_MULTIARCH)" \

View File

@@ -0,0 +1,89 @@
FROM python:3.10-slim
LABEL org.opencontainers.image.title="Unit (python3.10)"
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 <docker-maint@nginx.com>"
LABEL org.opencontainers.image.version="1.32.1"
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 \
&& 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.32.1-1 https://github.com/nginx/unit \
&& cd unit \
&& NCPU="$(getconf _NPROCESSORS_ONLN)" \
&& DEB_HOST_MULTIARCH="$(dpkg-architecture -q DEB_HOST_MULTIARCH)" \
&& CC_OPT="$(DEB_BUILD_MAINT_OPTIONS="hardening=+all,-pie" DEB_CFLAGS_MAINT_APPEND="-Wp,-D_FORTIFY_SOURCE=2 -fPIC" dpkg-buildflags --get CFLAGS)" \
&& LD_OPT="$(DEB_BUILD_MAINT_OPTIONS="hardening=+all,-pie" DEB_LDFLAGS_MAINT_APPEND="-Wl,--as-needed -pie" dpkg-buildflags --get LDFLAGS)" \
&& CONFIGURE_ARGS_MODULES="--prefix=/usr \
--statedir=/var/lib/unit \
--control=unix:/var/run/control.unit.sock \
--runstatedir=/var/run \
--pid=/var/run/unit.pid \
--logdir=/var/log \
--log=/var/log/unit.log \
--tmpdir=/var/tmp \
--user=unit \
--group=unit \
--openssl \
--libdir=/usr/lib/$DEB_HOST_MULTIARCH" \
&& CONFIGURE_ARGS="$CONFIGURE_ARGS_MODULES \
--njs" \
&& 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 \
&& make -j $NCPU unitd \
&& install -pm755 build/sbin/unitd /usr/sbin/unitd-debug \
&& make clean \
&& ./configure $CONFIGURE_ARGS --cc-opt="$CC_OPT" --ld-opt="$LD_OPT" --modulesdir=/usr/lib/unit/modules \
&& make -j $NCPU unitd \
&& install -pm755 build/sbin/unitd /usr/sbin/unitd \
&& make clean \
&& /bin/true \
&& ./configure $CONFIGURE_ARGS_MODULES --cc-opt="$CC_OPT" --modulesdir=/usr/lib/unit/debug-modules --debug \
&& ./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 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 \
ldd $f | awk '/=>/{print $(NF-1)}' | while read n; do dpkg-query -S $n; done | sed 's/^\([^:]\+\):.*$/\1/' | sort | uniq >> /requirements.apt; \
done \
&& apt-mark showmanual | xargs apt-mark auto > /dev/null \
&& { [ -z "$savedAptMark" ] || apt-mark manual $savedAptMark; } \
&& /bin/true \
&& mkdir -p /var/lib/unit/ \
&& mkdir -p /docker-entrypoint.d/ \
&& groupadd --gid 999 unit \
&& useradd \
--uid 999 \
--gid unit \
--no-create-home \
--home /nonexistent \
--comment "unit user" \
--shell /bin/false \
unit \
&& apt-get update \
&& apt-get --no-install-recommends --no-install-suggests -y install curl $(cat /requirements.apt) \
&& apt-get purge -y --auto-remove build-essential \
&& rm -rf /var/lib/apt/lists/* \
&& rm -f /requirements.apt \
&& ln -sf /dev/stderr /var/log/unit.log
COPY docker-entrypoint.sh /usr/local/bin/
COPY welcome.* /usr/share/unit/welcome/
STOPSIGNAL SIGTERM
ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"]
EXPOSE 80
CMD ["unitd", "--no-daemon", "--control", "unix:/var/run/control.unit.sock"]

View File

@@ -1,4 +1,4 @@
FROM python:3.11-bullseye
FROM python:3.11-slim
LABEL org.opencontainers.image.title="Unit (python3.11)"
LABEL org.opencontainers.image.description="Official build of Unit for Docker."
@@ -6,7 +6,7 @@ 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 <docker-maint@nginx.com>"
LABEL org.opencontainers.image.version="1.31.1"
LABEL org.opencontainers.image.version="1.32.1"
RUN set -ex \
&& savedAptMark="$(apt-mark showmanual)" \
@@ -15,7 +15,7 @@ RUN set -ex \
&& 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.31.1-1 https://github.com/nginx/unit \
&& git clone --depth 1 -b 1.32.1-1 https://github.com/nginx/unit \
&& cd unit \
&& NCPU="$(getconf _NPROCESSORS_ONLN)" \
&& DEB_HOST_MULTIARCH="$(dpkg-architecture -q DEB_HOST_MULTIARCH)" \

View File

@@ -1,4 +1,4 @@
FROM python:3.12-bullseye
FROM python:3.12-slim
LABEL org.opencontainers.image.title="Unit (python3.12)"
LABEL org.opencontainers.image.description="Official build of Unit for Docker."
@@ -6,7 +6,7 @@ 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 <docker-maint@nginx.com>"
LABEL org.opencontainers.image.version="1.31.1"
LABEL org.opencontainers.image.version="1.32.1"
RUN set -ex \
&& savedAptMark="$(apt-mark showmanual)" \
@@ -15,7 +15,7 @@ RUN set -ex \
&& 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.31.1-1 https://github.com/nginx/unit \
&& git clone --depth 1 -b 1.32.1-1 https://github.com/nginx/unit \
&& cd unit \
&& NCPU="$(getconf _NPROCESSORS_ONLN)" \
&& DEB_HOST_MULTIARCH="$(dpkg-architecture -q DEB_HOST_MULTIARCH)" \

View File

@@ -6,7 +6,7 @@ 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 <docker-maint@nginx.com>"
LABEL org.opencontainers.image.version="1.31.1"
LABEL org.opencontainers.image.version="1.32.1"
RUN set -ex \
&& savedAptMark="$(apt-mark showmanual)" \
@@ -15,7 +15,7 @@ RUN set -ex \
&& 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.31.1-1 https://github.com/nginx/unit \
&& git clone --depth 1 -b 1.32.1-1 https://github.com/nginx/unit \
&& cd unit \
&& NCPU="$(getconf _NPROCESSORS_ONLN)" \
&& DEB_HOST_MULTIARCH="$(dpkg-architecture -q DEB_HOST_MULTIARCH)" \

View File

@@ -6,7 +6,7 @@ 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 <docker-maint@nginx.com>"
LABEL org.opencontainers.image.version="1.31.1"
LABEL org.opencontainers.image.version="1.32.1"
RUN set -ex \
&& savedAptMark="$(apt-mark showmanual)" \
@@ -15,7 +15,7 @@ RUN set -ex \
&& 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.31.1-1 https://github.com/nginx/unit \
&& git clone --depth 1 -b 1.32.1-1 https://github.com/nginx/unit \
&& cd unit \
&& NCPU="$(getconf _NPROCESSORS_ONLN)" \
&& DEB_HOST_MULTIARCH="$(dpkg-architecture -q DEB_HOST_MULTIARCH)" \

View File

@@ -6,7 +6,7 @@ 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 <docker-maint@nginx.com>"
LABEL org.opencontainers.image.version="1.32.0"
LABEL org.opencontainers.image.version="1.32.1"
RUN set -ex \
&& savedAptMark="$(apt-mark showmanual)" \
@@ -15,7 +15,7 @@ RUN set -ex \
&& 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.32.0-1 https://github.com/nginx/unit \
&& git clone --depth 1 -b 1.32.1-1 https://github.com/nginx/unit \
&& cd unit \
&& NCPU="$(getconf _NPROCESSORS_ONLN)" \
&& DEB_HOST_MULTIARCH="$(dpkg-architecture -q DEB_HOST_MULTIARCH)" \

View File

@@ -147,7 +147,7 @@ nxt_var_ref_get(nxt_tstr_state_t *state, nxt_str_t *name, nxt_mp_t *mp)
if (decl != NULL) {
ref->handler = decl->handler;
ref->cacheable = decl->cacheable;
ref->cacheable = (mp == state->pool) ? decl->cacheable : 0;
goto done;
}

View File

@@ -4,6 +4,7 @@ use http_body_util::combinators::BoxBody;
use http_body_util::{BodyExt, Full};
use std::ffi::{CStr, CString};
use std::mem::MaybeUninit;
use std::process::exit;
use std::ptr;
use std::sync::OnceLock;
use tokio::sync::mpsc;
@@ -101,7 +102,9 @@ unsafe extern "C" fn start(
task: *mut bindings::nxt_task_t,
data: *mut bindings::nxt_process_data_t,
) -> bindings::nxt_int_t {
handle_result(task, || {
let mut rc: i32 = 0;
let result = handle_result(task, || {
let config = GLOBAL_CONFIG.get().unwrap();
let state = GlobalState::new(&config)
.context("failed to create initial state")?;
@@ -123,11 +126,17 @@ unsafe extern "C" fn start(
bail!("nxt_unit_init() failed");
}
bindings::nxt_unit_run(unit_ctx);
rc = bindings::nxt_unit_run(unit_ctx);
bindings::nxt_unit_done(unit_ctx);
Ok(())
})
});
if result != bindings::NXT_OK as bindings::nxt_int_t {
return result;
}
exit(rc);
}
unsafe fn handle_result(

View File

@@ -116,6 +116,24 @@ def test_njs_variables_cacheable(temp_dir):
check_rewrite('/str', '${vars.uri}')
def test_njs_variables_cacheable_access_log(findall, temp_dir):
assert 'success' in client.conf({"return": 200}, 'routes/0/action')
assert 'success' in client.conf(
{
'path': f'{temp_dir}/access.log',
'format': '`${vars.host}, ${vars.status}\n`',
},
'access_log'
), 'access_log configure'
reqs = 50
for _ in range(reqs):
client.get()
assert len(findall(r'localhost, 200', 'access.log')) == reqs
def test_njs_invalid(skip_alert):
skip_alert(r'js exception:')

View File

@@ -1,5 +1,5 @@
# Copyright (C) NGINX, Inc.
NXT_VERSION=1.32.0
NXT_VERNUM=13200
NXT_VERSION=1.32.1
NXT_VERNUM=13201