added rtmp module to nginx image
All checks were successful
CI / Build nginx docker images (push) Successful in 6m31s

This commit is contained in:
2025-12-23 20:51:16 +08:00
parent f724b5f0e3
commit eb1509ce4f
5 changed files with 50 additions and 26 deletions

View File

@@ -9,14 +9,6 @@ jobs:
"Build nginx docker images":
runs-on: woryzen
steps:
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3.4.0
with:
driver: docker-container
platforms: |
linux/amd64
linux/arm64
-
name: Login to Gitea container registry
uses: docker/login-action@v3
@@ -28,10 +20,12 @@ jobs:
name: Build and push nginx vanilla images
uses: docker/build-push-action@v6
with:
builder: multiplatform-builder
context: "{{defaultContext}}:nginx"
platforms: |
linux/amd64
linux/arm64
linux/arm/v7
push: true
pull: true
ssh: default=/home/luser/.ssh/id_ed25519
@@ -44,16 +38,16 @@ jobs:
LIBRESSL_VERSION=4.2.1
NGINX_VERSION=1.29.4
NGINX_BRANCH=vanilla
cache-from: type=registry,ref=gitea.woggioni.net/woggioni/nginx:buildx-vanilla
cache-to: type=registry,mode=max,compression=zstd,image-manifest=true,oci-mediatypes=true,ref=gitea.woggioni.net/woggioni/nginx:buildx-vanilla
-
name: Build and push nginx custom images
uses: docker/build-push-action@v6
with:
builder: multiplatform-builder
context: "{{defaultContext}}:nginx"
platforms: |
linux/amd64
linux/arm64
linux/arm/v7
push: true
pull: true
ssh: default=/home/luser/.ssh/id_ed25519
@@ -66,5 +60,3 @@ jobs:
LIBRESSL_VERSION=4.2.1
NGINX_VERSION=1.29.4
NGINX_BRANCH=woggioni
cache-from: type=registry,ref=gitea.woggioni.net/woggioni/nginx:buildx-woggioni
cache-to: type=registry,mode=max,compression=zstd,image-manifest=true,oci-mediatypes=true,ref=gitea.woggioni.net/woggioni/nginx:buildx-woggioni

View File

@@ -1,5 +1,5 @@
ARG NGINX_BRANCH=vanilla
FROM alpine:3.22 AS base
FROM alpine:3.23 AS base
FROM base AS build_stage_1
ARG NGINX_VERSION LIBRESSL_VERSION
@@ -29,6 +29,7 @@ RUN --mount=type=cache,target=/var/cache/apk apk add \
pcre \
pcre-dev \
perl-dev \
quickjs-dev \
su-exec \
tar \
tzdata \
@@ -65,6 +66,7 @@ ADD --chown=luser:luser git@github.com:woggioni/nginx.git#release-${NGINX_VERSIO
FROM build_stage_2_${NGINX_BRANCH} AS build
ADD --chown=luser:luser https://github.com/openresty/headers-more-nginx-module.git /ngx_headers_more
ADD --chown=luser:luser https://github.com/google/ngx_brotli.git /ngx_brotli
USER root
WORKDIR /
RUN hg clone http://hg.nginx.org/njs /njs
@@ -74,6 +76,12 @@ WORKDIR /home/luser
ADD --chown=luser:luser --chmod=755 ./build.sh ./build.sh
RUN ./build.sh
FROM build_stage_2_${NGINX_BRANCH} AS build-rtmp
ADD --chown=luser:luser https://github.com/arut/nginx-rtmp-module.git /ngx-rtmp-module
USER luser
WORKDIR /home/luser
ADD --chown=luser:luser --chmod=755 ./build-rtmp.sh ./build-rtmp.sh
RUN ./build-rtmp.sh
FROM base AS release
ARG VERSION
@@ -91,7 +99,7 @@ RUN --mount=type=cache,target=/var/cache/apk \
--mount=type=bind,source=install.sh,target=/install.sh \
(cd nginx && sh /install.sh)
RUN --mount=type=cache,target=/var/cache/apk apk del .install_deps
COPY --from=build-rtmp --chown=root:root /nginx/objs/ngx_rtmp_module.so /usr/lib/nginx/modules/
COPY --from=build /home/luser/libressl/openssl.cnf /etc/ssl/openssl.cnf
COPY conf/nginx.conf /etc/nginx/nginx.conf
COPY conf/dhparam /etc/nginx/dhparam

30
nginx/build-rtmp.sh Normal file
View File

@@ -0,0 +1,30 @@
#!/usr/bin/env sh
set -e
CONFIG='
--prefix=/etc/nginx
--sbin-path=/usr/sbin/nginx
--modules-path=/usr/lib/nginx/modules
--conf-path=/etc/nginx/nginx.conf
--error-log-path=/var/log/nginx/error.log
--http-log-path=/var/log/nginx/access.log
--pid-path=/var/run/nginx.pid
--lock-path=/var/run/nginx.lock
--http-client-body-temp-path=/var/cache/nginx/client_temp
--http-proxy-temp-path=/var/cache/nginx/proxy_temp
--http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp
--http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp
--http-scgi-temp-path=/var/cache/nginx/scgi_temp
--user=nginx
--group=nginx
--with-http_ssl_module
--add-dynamic-module=/ngx-rtmp-module
'
cd /nginx
auto/configure $CONFIG \
--with-cc-opt="-I/home/luser/libressl/build/include" \
--with-ld-opt="-lstdc++ -L/home/luser/libressl/build/ssl -L/home/luser/libressl/build/crypto"
make -j$(nproc)

View File

@@ -18,6 +18,7 @@ CONFIG='
--http-scgi-temp-path=/var/cache/nginx/scgi_temp
--user=nginx
--group=nginx
--with-pcre
--with-http_ssl_module
--with-http_realip_module
--with-http_addition_module
@@ -25,6 +26,8 @@ CONFIG='
--with-http_dav_module
--with-http_flv_module
--with-http_mp4_module
--with-http_degradation_module
--with-http_slice_module
--with-http_gunzip_module
--with-http_gzip_static_module
--with-http_random_index_module
@@ -40,14 +43,14 @@ CONFIG='
--with-stream_realip_module
--with-stream_geoip_module=dynamic
--with-http_slice_module
--with-mail
--with-mail=dynamic
--with-mail_ssl_module
--with-compat
--with-file-aio
--with-http_v2_module
--with-http_v3_module
--add-dynamic-module=/ngx_headers_more
--add-dynamic-module=/ngx_brotli
--add-module=/ngx_brotli
--add-dynamic-module=/njs/nginx
'

View File

@@ -1,13 +1,4 @@
load_module modules/ngx_http_xslt_filter_module.so;
#load_module modules/ngx_http_image_filter_module.so;
load_module modules/ngx_http_geoip_module.so;
#load_module modules/ngx_http_perl_module.so;
load_module modules/ngx_stream_geoip_module.so;
load_module modules/ngx_http_headers_more_filter_module.so;
load_module modules/ngx_http_brotli_static_module.so;
load_module modules/ngx_http_brotli_filter_module.so;
#load_module modules/ngx_http_js_module.so;
include /etc/nginx/conf.d/modules/*.conf;
user nginx;
worker_processes 1;