Files
hctv/flv-module/Dockerfile
SrIzan10 9837cbb713 feat/nginx-rtmp-move (#33)
* feat: initial and probably final rtmp server backend

* feat: video player and next-ws

* chore: cleanup livekit api routes

* feat: chat

* feat: move to nginx flv

* feat: no viewer streaminfo implementation
2025-03-15 16:58:14 +01:00

56 lines
1.7 KiB
Docker

FROM alpine:3.19 as builder
RUN apk add --no-cache \
build-base \
pcre-dev \
zlib-dev \
openssl-dev \
wget \
git && \
wget http://nginx.org/download/nginx-1.26.3.tar.gz && \
tar -zxf nginx-1.26.3.tar.gz && \
git clone https://github.com/winshining/nginx-http-flv-module.git && \
cd nginx-1.26.3 && \
./configure --add-module=../nginx-http-flv-module && \
make -j$(nproc) && make install && \
rm -rf /nginx-1.26.3.tar.gz /nginx-1.26.3 /nginx-http-flv-module
FROM alpine:3.19
COPY --from=builder /usr/local/nginx /usr/local/nginx
# Install runtime dependencies including gettext for envsubst
RUN apk add --no-cache \
pcre \
zlib \
openssl \
ffmpeg \
shadow \
gettext && \
addgroup -S nginx && \
adduser -S -D -H -G nginx -s /sbin/nologin nginx && \
mkdir -p /usr/local/nginx/proxy_temp /usr/local/nginx/client_body_temp && \
chown -R nginx:nginx /usr/local/nginx
# Create directory for template files
RUN mkdir -p /etc/nginx/templates
EXPOSE 80 1935 8888
# Create an entrypoint script to handle environment variable substitution
RUN echo '#!/bin/sh \n\
# Replace environment variables in configuration templates \n\
for template in /etc/nginx/templates/*.conf.template; do \n\
if [ -f "$template" ]; then \n\
output_file="/usr/local/nginx/conf/$(basename $template .template)" \n\
echo "Processing template: $template -> $output_file" \n\
envsubst "$(env | awk -F= "{printf \\\"\\\$%s \\\",\\\$1}")" < $template > $output_file \n\
fi \n\
done \n\
\n\
# Start Nginx \n\
exec "$@"' > /docker-entrypoint.sh && \
chmod +x /docker-entrypoint.sh
ENTRYPOINT ["/docker-entrypoint.sh"]
CMD ["/usr/local/nginx/sbin/nginx", "-g", "daemon off;"]