docker编译一个支持flv的nginx镜像

在本地下载编译了下

(参考:https://www.cnblogs.com/hhmm99/p/16050844.html)

相关文件下载

https://nginx.org/download/

https://gitee.com/winshining/nginx-http-flv-module

编译时缺少openssl报错

./configure: error: SSL modules require the OpenSSL library.

You can either do not enable the modules, or install the OpenSSL library

into the system, or build the OpenSSL library statically from the source

with nginx by using --with-openssl=<path> option.

复制代码
sudo apt install openssl libssl-dev

./configure --add-module=/home/dtjk/work_rtsp/nginx-http-flv-module --with-http_ssl_module
make
make install

不想执行最后一步make install而污染本地系统,

所以就放docker里面去了

docker编译镜像

  • 安装 Docker 确保你已经在系统上安装了 Docker。如果还没有安装,可以参考 Docker 官方安装文档。

  • 创建 Dockerfile 创建一个新的目录来存放你的 Dockerfile 和相关文件。比如,nginx-flv.

复制代码
  mkdir nginx-flv
  cd nginx-flv
  • 编写 Dockerfile 在 nginx-flv 目录中创建一个名为 Dockerfile 的文件,内容如下:

    使用官方的 Debian 镜像作为基础镜像

    FROM debian:latest

    安装必要的依赖

    RUN apt-get update && apt-get install -y
    build-essential
    libpcre3
    libpcre3-dev
    zlib1g
    zlib1g-dev
    libssl-dev
    wget

    下载并解压 Nginx 源码

    RUN wget http://nginx.org/download/nginx-1.24.0.tar.gz &&
    tar -zxvf nginx-1.24.0.tar.gz

    下载并解压 Nginx-RTMP 模块源码

    RUN wget https://gitee.com/winshining/nginx-http-flv-module/repository/archive/master.zip &&
    unzip master.zip

    编译 Nginx 并添加 RTMP 模块

    WORKDIR /nginx-1.24.0

    RUN ./configure --with-http_ssl_module --add-module=../nginx-rtmp-module-master &&
    make &&
    make install

    暴露 Nginx 默认端口

    EXPOSE 80 1935

    启动 Nginx

    CMD ["nginx", "-g", "daemon off;"]

构建 Docker 镜像

在 nginx-flv 目录中运行以下命令来构建 Docker 镜像:

复制代码
  docker build -t my-nginx-flv .
  • 运行 Docker 容器 构建完成后,你可以使用以下命令来运行一个基于新镜像的容器:

复制代码
  docker run --name my-nginx-flv-container -d -p 80:80 -p 1935:1935 my-nginx-flv

这样,你就可以访问运行在容器中的 Nginx 服务了。

  • 验证 打开浏览器,访问 http://localhost,确认 Nginx 已经成功启动。如果需要配置 Nginx 以支持 FLV 流媒体播放,你需要进一步调整 Nginx 的配置文件。

  • 修改 Nginx 配置 如果你需要自定义 Nginx 配置,可以在 Dockerfile 中添加复制配置文件的步骤。例如,将本地的 nginx.conf 文件复制到镜像的适当位置。

    Dockerfile

复制代码
   # 继续之前的 Dockerfile 内容
   COPY nginx.conf /usr/local/nginx/conf/nginx.conf

用这种方式,你可以灵活地调整和扩展 Nginx 的功能,满足各种需求。

相关推荐
闲云野鹤在人间9 小时前
Kubernetes Service 与 kube-proxy 详解
云原生·容器·kubernetes
说实话起个名字真难啊10 小时前
实战docker部署dify及注意点
运维·docker·容器
闲云自留地11 小时前
K8s Service 全解:服务发现、四种类型、会话保持、金丝雀发布一篇通
容器·kubernetes·服务发现
choumin12 小时前
C++ 标准容器为什么不能存引用
c++·容器·引用类型
Starry-sky(jing)14 小时前
crane 下载镜像:不连接 Docker,3 步准备并校验 ARM64 离线包
运维·docker·arm64·crane
对象存储与RustFS15 小时前
GPU 在空转等数据?PyTorch 训练集进 RustFS 的三种接法
后端·docker·云原生
庵中十三居士15 小时前
用nginx代理DeepSeekHarness挂在域名下特定路径提供访问
运维·nginx·deepseek·harness
fb_1234517 小时前
K8s 网络通关手册:Ingress-Nginx 生产级路由 + Calico 三种隧道模式 + NetworkPolicy 白名单实战
网络·nginx·kubernetes
承渊政道17 小时前
新增一台服务器时还要重新装Nginx?Ansible只改hosts目标列表,同一份Playbook继续执行
运维·nginx·ansible·内网穿透·cpolar
KIDULT°17 小时前
K8s 网络进阶实战:Ingress-Nginx、Calico 与 NetworkPolicy 实验 + 排坑记录
网络·nginx·云原生·kubernetes