Dockerfile创建CentOS7.8.2003基础镜像下nginx-rtmp-ffmpeg流服务镜像
创建镜像
为了方便镜像的创建,比如缩小镜像体积、更改配置等,现在使用Dockerfile文件创建镜像。
编写Dockerfile文件
针对基于CentOS7.8.2003基础镜像下创建nginx-rtmp-ffmpeg流服务镜像
我的Dockerfile文件如下:
FROM centos:7.8.2003
LABEL author xnz <xnzsir@gmail.com>
ENV NGINX_VERSION 1.18.0
ENV NGINX_RTMP_VERSION 1.2.1
ENV FFMPEG_VERSION 2.8.15
# Mapping Port
EXPOSE 1935
EXPOSE 80
EXPOSE 443
# FFmpeg.
# Install EPEL Release because the installation needs to use another REPO source
# Install Nux-Dextop source
# Install FFmpeg
RUN yum install -y epel-release --nogpgcheck \
&& rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro \
&& rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm \
&& yum install ffmpeg ffmpeg-devel -y
# Nginx And Nginx-rtmp-module.
# Build dependencies
# Install wget
# Download nginx and nginx-rtmp-module
# Install nginx and nginx-rtmp-module
# Cleanup.
RUN yum -y install gcc gcc-c++ make zlib zlib-devel openssl openssl-devel pcre pcre-devel pkgconf pkgconfig \
&& cd /tmp \
&& mkdir -p ./data/nginx-rtmp-ffmpeg \
&& cd ./data/nginx-rtmp-ffmpeg/ \
&& yum -y install wget \
&& wget http://nginx.org/download/nginx-${NGINX_VERSION}.tar.gz \
&& wget https://github.com/arut/nginx-rtmp-module/archive/v${NGINX_RTMP_VERSION}.tar.gz \
&& tar -zxf nginx-${NGINX_VERSION}.tar.gz \
&& tar -zxf v${NGINX_RTMP_VERSION}.tar.gz \
&& cd nginx-${NGINX_VERSION}/ \
&& ./configure --prefix=/usr/local/src/nginx --add-module=../nginx-rtmp-module-${NGINX_RTMP_VERSION} --with-debug --with-http_ssl_module \
&& make && make install \
&& cd /usr/local/src/nginx \
&& mkdir -p ./data/hls \
&& mkdir certs \
&& rm -rf /var/cache/* /tmp/* \
&& yum -y remove gcc*
# COPY NGINX config and static files.
COPY nginx.conf /usr/local/src/nginx/conf
COPY static /usr/local/src/nginx/data/static
# COPY SSL CERT.
COPY certs /usr/local/src/nginx/certs
# Start Nginx.
ENTRYPOINT ["/usr/local/src/nginx/sbin/nginx","-g","daemon off"]
CMD ["-c","/usr/local/src/nginx/conf/nginx.conf"]
Dockerfile语法可参考Docker官网: Dockerfile reference
大佬博文:
使用dockerfile构建nginx镜像 docker部署nginx–dockerfile方法 dockerfile方式创建nginx服务
创建Dockerfile执行目录及相关文件
-
首先在服务器宿主机创建空目录
nginx-rtmp-ffmpeg-centos7.8.2003
-
将Dockerfile文件,以及涉及到的其他文件,如:nginx.conf、SSL证书(server.crt、server.key)等文件,上传至该目录下:
-
nginx.conf 配置如下:
worker_processes 1; error_log logs/error.log debug; events { worker_connections 1024; } rtmp { server { listen 1935; chunk_size 4096; application stream { live on;