首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
herozzm
V2EX  ›  Docker

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

  •  1
     
  •   herozzm · 51 天前 · 2203 次点击
    这是一个创建于 51 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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