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

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

  •  1
     
  •   herozzm · 2020-05-24 15:56:36 +08:00 · 6014 次点击
    这是一个创建于 1629 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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