Compare commits
10 Commits
4d25c61224
...
ae01f6599d
| Author | SHA1 | Date | |
|---|---|---|---|
| ae01f6599d | |||
|
|
48d7917059 | ||
|
|
3f228d6b6f | ||
|
|
8ca4962d9a | ||
|
|
777b7c8782 | ||
|
|
d7ff6bb4a1 | ||
|
|
6359c74da1 | ||
|
|
97ff09903b | ||
|
|
088117008c | ||
|
|
ace553dca4 |
69
.gitea/workflows/build.yml
Normal file
69
.gitea/workflows/build.yml
Normal 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
62
CHANGES
@@ -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.
|
||||
|
||||
@@ -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 <nginx-packaging@f5.com>">
|
||||
|
||||
<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 <nginx-packaging@f5.com>">
|
||||
|
||||
<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 <nginx-packaging@f5.com>">
|
||||
@@ -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 <nginx-packaging@f5.com>">
|
||||
|
||||
<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 <nginx-packaging@f5.com>">
|
||||
|
||||
<change type="feature">
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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)" \
|
||||
|
||||
@@ -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)" \
|
||||
|
||||
@@ -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)" \
|
||||
|
||||
@@ -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)" \
|
||||
|
||||
@@ -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)" \
|
||||
|
||||
@@ -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)" \
|
||||
|
||||
@@ -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)" \
|
||||
|
||||
@@ -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)" \
|
||||
|
||||
@@ -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)" \
|
||||
|
||||
@@ -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)" \
|
||||
|
||||
89
pkg/docker/Dockerfile.python3.10
Normal file
89
pkg/docker/Dockerfile.python3.10
Normal 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"]
|
||||
@@ -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)" \
|
||||
|
||||
@@ -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)" \
|
||||
|
||||
@@ -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)" \
|
||||
|
||||
@@ -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)" \
|
||||
|
||||
@@ -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)" \
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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(
|
||||
|
||||
@@ -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:')
|
||||
|
||||
|
||||
Reference in New Issue
Block a user