herozzm
V2EX  ›  Docker

docker 的 nginx 怎么编译增加模块?

  •  1
     
  •   herozzm · May 24, 2020 · 6921 views
    This topic created in 2357 days ago, the information mentioned may be changed or developed.

    需要增加一个直播模块nginx-rtmp-module, docker 容器中当初源码也没有,重新下了一个源码进去编译,在容器中重新./configure 提示 error: C compiler cc is not found,感觉缺少的不仅是 c,应该还有其他东西,你们是怎么弄的?

    Supplement 1  ·  May 24, 2020
    解决了,经过大神指点,在宿主编译好需要模块,参数和容器的 nginx 一直,再加上 add-module=新增模块路径
    然后将编译后的 nginx 二进制文件 cp 到容器内,`ldd /tmp/nginx` 对比宿主的 so 文件看,缺什么就拷贝到容器内,能跑起来
    11 replies  •  2020-07-06 09:10:38 +08:00
    herozzm
    herozzm
    OP
    May 24, 2020
    1
    运维的朋友 来帮帮忙
    wangyanrui
    wangyanrui
    May 24, 2020
    2
    自己打一个镜像呀~
    herozzm
    herozzm
    OP
    May 24, 2020 via Android
    3
    @wangyanrui #2 原来的容器已经配置好了很多东西,我需要的是是在原容器上 add modules
    chinvo
    chinvo
    May 24, 2020
    4
    你编译出来的模块, 也不能像 apache / php 的扩展那样作为独立组建载入到预编译的 nginx 里面

    所以最优解决方案是自己打一个镜像, 然后把原镜像里的设置复制过来

    你们别是在容器内改配置...
    herozzm
    herozzm
    OP
    May 25, 2020
    5
    @wangyanrui @chinvo 意思是用`apline`或`centos`打底做系统,在上面编译好 nginx,然后整体打包镜像吗?这样子的镜像会远远大于 nginx 原本的镜像吧?
    endoffight
    endoffight
    May 25, 2020 via Android
    6
    多阶段编译,只能帮到这儿了
    mouyong
    mouyong
    May 25, 2020
    7
    https://blog.iwnweb.com/nginx/nginx-add-module/ 本篇实践于 docker 中,你可以参考这个尝试,并将步骤写成 dockerfile,就添加好了你的模块的 nginx
    chotow
    chotow
    May 25, 2020
    8
    本来想贴个 Dockerfile 的案例给你看,但 v2 警告我不许放短网址 🙃——回复不支持 Markdown 。
    JaminT
    JaminT
    May 25, 2020
    9
    虽然我没遇到过 但是想知道答案
    julyclyde
    julyclyde
    May 25, 2020❤️1
    10
    如果去掉 docker 这个前提,你会发现一切都很容易了
    594duck
    594duck
    Jul 6, 2020
    11
    @julyclyde 老哥思路清爽
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2186 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 13:49 · PVG 21:49 · LAX 05:49 · JFK 08:49
    ♥ Do have faith in what you're doing.