Docker学习之使用Dockerfile创建CentOS7.8.2003基础镜像下nginx-rtmp-ffmpeg流服务镜像

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 中的 COPY 与 ADD 命令

创建Dockerfile执行目录及相关文件

  1. 首先在服务器宿主机创建空目录 nginx-rtmp-ffmpeg-centos7.8.2003

  2. 将Dockerfile文件,以及涉及到的其他文件,如:nginx.conf、SSL证书(server.crt、server.key)等文件,上传至该目录下:

00005

  1. 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;
    
             
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值