mirror of
https://github.com/SrIzan10/hctv.git
synced 2026-06-06 00:56:56 +00:00
* 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
56 lines
1.7 KiB
Docker
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;"] |