mirror of
https://github.com/blakeblackshear/frigate.git
synced 2024-11-21 19:07:46 +01:00
Build nginx with tmpfs (#4933)
* Update Dockerfile * Update Dockerfile * refactor into script and to be consistent Co-authored-by: Sergey Krashevich <svk@svk.su>
This commit is contained in:
parent
ba5cffac55
commit
12235acd75
49
Dockerfile
49
Dockerfile
@ -18,52 +18,11 @@ WORKDIR /rootfs
|
|||||||
|
|
||||||
FROM base AS nginx
|
FROM base AS nginx
|
||||||
ARG DEBIAN_FRONTEND
|
ARG DEBIAN_FRONTEND
|
||||||
ARG NGINX_VERSION=1.22.1
|
|
||||||
ARG VOD_MODULE_VERSION=1.30
|
|
||||||
ARG SECURE_TOKEN_MODULE_VERSION=1.4
|
|
||||||
ARG RTMP_MODULE_VERSION=1.2.1
|
|
||||||
|
|
||||||
RUN cp /etc/apt/sources.list /etc/apt/sources.list.d/sources-src.list \
|
# bind /var/cache/apt to tmpfs to speed up nginx build
|
||||||
&& sed -i 's|deb http|deb-src http|g' /etc/apt/sources.list.d/sources-src.list \
|
RUN --mount=type=tmpfs,target=/tmp --mount=type=tmpfs,target=/var/cache/apt \
|
||||||
&& apt-get update
|
--mount=type=bind,source=docker/build_nginx.sh,target=/deps/build_nginx.sh \
|
||||||
|
/deps/build_nginx.sh
|
||||||
RUN apt-get -yqq build-dep nginx
|
|
||||||
|
|
||||||
RUN apt-get -yqq install --no-install-recommends ca-certificates wget \
|
|
||||||
&& update-ca-certificates -f \
|
|
||||||
&& mkdir /tmp/nginx \
|
|
||||||
&& wget https://nginx.org/download/nginx-${NGINX_VERSION}.tar.gz \
|
|
||||||
&& tar -zxf nginx-${NGINX_VERSION}.tar.gz -C /tmp/nginx --strip-components=1 \
|
|
||||||
&& rm nginx-${NGINX_VERSION}.tar.gz \
|
|
||||||
&& mkdir /tmp/nginx-vod-module \
|
|
||||||
&& wget https://github.com/kaltura/nginx-vod-module/archive/refs/tags/${VOD_MODULE_VERSION}.tar.gz \
|
|
||||||
&& tar -zxf ${VOD_MODULE_VERSION}.tar.gz -C /tmp/nginx-vod-module --strip-components=1 \
|
|
||||||
&& rm ${VOD_MODULE_VERSION}.tar.gz \
|
|
||||||
# Patch MAX_CLIPS to allow more clips to be added than the default 128
|
|
||||||
&& sed -i 's/MAX_CLIPS (128)/MAX_CLIPS (1080)/g' /tmp/nginx-vod-module/vod/media_set.h \
|
|
||||||
&& mkdir /tmp/nginx-secure-token-module \
|
|
||||||
&& wget https://github.com/kaltura/nginx-secure-token-module/archive/refs/tags/${SECURE_TOKEN_MODULE_VERSION}.tar.gz \
|
|
||||||
&& tar -zxf ${SECURE_TOKEN_MODULE_VERSION}.tar.gz -C /tmp/nginx-secure-token-module --strip-components=1 \
|
|
||||||
&& rm ${SECURE_TOKEN_MODULE_VERSION}.tar.gz \
|
|
||||||
&& mkdir /tmp/nginx-rtmp-module \
|
|
||||||
&& wget https://github.com/arut/nginx-rtmp-module/archive/refs/tags/v${RTMP_MODULE_VERSION}.tar.gz \
|
|
||||||
&& tar -zxf v${RTMP_MODULE_VERSION}.tar.gz -C /tmp/nginx-rtmp-module --strip-components=1 \
|
|
||||||
&& rm v${RTMP_MODULE_VERSION}.tar.gz
|
|
||||||
|
|
||||||
WORKDIR /tmp/nginx
|
|
||||||
|
|
||||||
RUN ./configure --prefix=/usr/local/nginx \
|
|
||||||
--with-file-aio \
|
|
||||||
--with-http_sub_module \
|
|
||||||
--with-http_ssl_module \
|
|
||||||
--with-threads \
|
|
||||||
--add-module=../nginx-vod-module \
|
|
||||||
--add-module=../nginx-secure-token-module \
|
|
||||||
--add-module=../nginx-rtmp-module \
|
|
||||||
--with-cc-opt="-O3 -Wno-error=implicit-fallthrough"
|
|
||||||
|
|
||||||
RUN make && make install
|
|
||||||
RUN rm -rf /usr/local/nginx/html /usr/local/nginx/conf/*.default
|
|
||||||
|
|
||||||
FROM wget AS go2rtc
|
FROM wget AS go2rtc
|
||||||
ARG TARGETARCH
|
ARG TARGETARCH
|
||||||
|
50
docker/build_nginx.sh
Executable file
50
docker/build_nginx.sh
Executable file
@ -0,0 +1,50 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -euxo pipefail
|
||||||
|
|
||||||
|
NGINX_VERSION="1.22.1"
|
||||||
|
VOD_MODULE_VERSION="1.30"
|
||||||
|
SECURE_TOKEN_MODULE_VERSION="1.4"
|
||||||
|
RTMP_MODULE_VERSION="1.2.1"
|
||||||
|
|
||||||
|
cp /etc/apt/sources.list /etc/apt/sources.list.d/sources-src.list
|
||||||
|
sed -i 's|deb http|deb-src http|g' /etc/apt/sources.list.d/sources-src.list
|
||||||
|
apt-get update
|
||||||
|
|
||||||
|
apt-get -yqq build-dep nginx
|
||||||
|
|
||||||
|
apt-get -yqq install --no-install-recommends ca-certificates wget
|
||||||
|
update-ca-certificates -f
|
||||||
|
mkdir /tmp/nginx
|
||||||
|
wget -nv https://nginx.org/download/nginx-${NGINX_VERSION}.tar.gz
|
||||||
|
tar -zxf nginx-${NGINX_VERSION}.tar.gz -C /tmp/nginx --strip-components=1
|
||||||
|
rm nginx-${NGINX_VERSION}.tar.gz
|
||||||
|
mkdir /tmp/nginx-vod-module
|
||||||
|
wget -nv https://github.com/kaltura/nginx-vod-module/archive/refs/tags/${VOD_MODULE_VERSION}.tar.gz
|
||||||
|
tar -zxf ${VOD_MODULE_VERSION}.tar.gz -C /tmp/nginx-vod-module --strip-components=1
|
||||||
|
rm ${VOD_MODULE_VERSION}.tar.gz
|
||||||
|
# Patch MAX_CLIPS to allow more clips to be added than the default 128
|
||||||
|
sed -i 's/MAX_CLIPS (128)/MAX_CLIPS (1080)/g' /tmp/nginx-vod-module/vod/media_set.h
|
||||||
|
mkdir /tmp/nginx-secure-token-module
|
||||||
|
wget https://github.com/kaltura/nginx-secure-token-module/archive/refs/tags/${SECURE_TOKEN_MODULE_VERSION}.tar.gz
|
||||||
|
tar -zxf ${SECURE_TOKEN_MODULE_VERSION}.tar.gz -C /tmp/nginx-secure-token-module --strip-components=1
|
||||||
|
rm ${SECURE_TOKEN_MODULE_VERSION}.tar.gz
|
||||||
|
mkdir /tmp/nginx-rtmp-module
|
||||||
|
wget -nv https://github.com/arut/nginx-rtmp-module/archive/refs/tags/v${RTMP_MODULE_VERSION}.tar.gz
|
||||||
|
tar -zxf v${RTMP_MODULE_VERSION}.tar.gz -C /tmp/nginx-rtmp-module --strip-components=1
|
||||||
|
rm v${RTMP_MODULE_VERSION}.tar.gz
|
||||||
|
|
||||||
|
cd /tmp/nginx
|
||||||
|
|
||||||
|
./configure --prefix=/usr/local/nginx \
|
||||||
|
--with-file-aio \
|
||||||
|
--with-http_sub_module \
|
||||||
|
--with-http_ssl_module \
|
||||||
|
--with-threads \
|
||||||
|
--add-module=../nginx-vod-module \
|
||||||
|
--add-module=../nginx-secure-token-module \
|
||||||
|
--add-module=../nginx-rtmp-module \
|
||||||
|
--with-cc-opt="-O3 -Wno-error=implicit-fallthrough"
|
||||||
|
|
||||||
|
make -j$(nproc) && make install
|
||||||
|
rm -rf /usr/local/nginx/html /usr/local/nginx/conf/*.default
|
Loading…
Reference in New Issue
Block a user