nginx 装进 docker 的方案 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
NeverBelieveMe
V2EX    程序员

nginx 装进 docker 的方案

  •  
  •   NeverBelieveMe 2023-09-22 11:12:46 +08:00 2123 次点击
    这是一个创建于 757 天前的主题,其中的信息可能已经有所发展或是发生改变。

    nginx 装进 docker 之后,前端项目或者静态文件的配置遇到了问题。 以前的静态项目配置就是配置一下域名和项目文件夹路径。但是现在 nginx 装进了 docker 中,就无法访问到宿主机的路径了。这种情况下,就必须把静态项目的路径挂载的 nginx 的 docker 中。 感觉这种方式很不方便,每次都要修改 compose 的配置,然后重新启动 docker 。 如果不挂载的话,前端项目也要写个 dockerfile 去构造个镜像,就很麻烦。特别是一些非常小的项目。 想知道大佬们都是怎么解决这个问题的。前提是 nginx 必须装在 docker 中。

    Aliencn
        1
    Aliencn  
       2023-09-22 11:15:54 +08:00
    特别小的项目就把静态文件一起都打到 docker 里就行了
    zhhbstudio
        2
    zhhbstudio  
       2023-09-22 11:16:51 +08:00
    以我的经验,打包好的项目和 nginx 应该在一个容器里
    MuXia
        3
    MuXia  
       2023-09-22 11:16:58 +08:00
    将 docker 启动的 nginx 项目存储 html 文件的路径挂载出来,然后每次修改宿主机上对应的挂载目录的内容,然后重启 nginx 容器即可
    wangxin13g
        4
    wangxin13g  
       2023-09-22 11:17:06 +08:00
    开发环境前端直接 node 跑,本地跑个 nginx 转发下开发域名到对应端口就完事
    发布的话前端写个 dockerfile ,用 nginx 当基础镜像,前端 build 之后把对应的编译结果和 nginx 文件 cp 到镜像里然后 run 就完事了
    me1onsoda
        5
    me1onsoda  
       2023-09-22 11:18:43 +08:00
    不理解,路径挂载的方式,为什么每次要修改 compose
    ysc3839
        6
    ysc3839  
       2023-09-22 11:20:41 +08:00 via Android
    都放到一个目录下即可。我的方案是用 Alpine Linux 的 nginx ,Docker 里面挂载/etc/nginx/nginx.conf /etc/nginx/conf /www ,静态页面放/www 里面
    leokun
        7
    leokun  
       2023-09-22 11:20:45 +08:00
    每个项目都有自己的 nginx ,就在那个项目里面维护一个 dockerfile
    itlaohui
        8
    itlaohui  
       2023-09-22 11:23:09 +08:00
    要么把静态文件在 Dockerfile 里就打包进去,要么就在 docker-compose.yml 中里填写宿主机路径映射。

    除了这两种方式,没有别的方法了,嫌每次都要重启的话,那就要看你映射的目录范围,如果映射 html 那个目录的话,那么就可以动态添加更多的网站,docker exec nginx nginx -s reload 就可以不停服务完成更新
    m2276699
        9
    m2276699  
       2023-09-22 11:24:29 +08:00
    我也不理解,为什么每次要修改 compose ?挂载配置目录和 www 目录,只更新目录的文件不就 OK 了吗?多个项目分文件夹也是可以的
    NeverBelieveMe
        10
    NeverBelieveMe  
    OP
       2023-09-22 11:30:24 +08:00
    @me1onsoda @m2276699 就是项目不能够放到 www 目录的情况。
    yinmin
        11
    yinmin  
       2023-09-22 11:39:12 +08:00 via iPhone
    @NeverBelieveMe 你用的挂接方式是 OK 的,就用这个方法,别折腾,习惯就好。
    BeautifulSoap
        12
    BeautifulSoap  
       2023-09-22 11:47:01 +08:00 via Android
    想了会,lz 意思就是本地不同目录放了一堆不同静态网站,然后域名解析到本地,想通过 nginx 根据不同域名访问不同静态网站?

    如果你这些静态网站都在 home 目录的不同地方的话,这情况你直接把 home 目录给 mount 到 nginx 容器里就行了。反正只是本地开发测试,怎么简单怎么来
    yinmin
        13
    yinmin  
       2023-09-22 11:55:05 +08:00
    @NeverBelieveMe 我用 portainer ce 集中管理 docker 的,portainer 里的 stacks 对应 compose 的 yaml 文件,调参数很方便,你可以试试。
    yumusb
        14
    yumusb  
       2023-09-22 12:16:47 +08:00
    挂载目录以后 也不用重启啊。。不知道为啥会需要重启
    wdssmq
        15
    wdssmq  
       2023-09-22 14:13:04 +08:00
    挂载路径里好像是可以用软连接指向实际路径的?
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1643 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 16:20 PVG 00:20 LAX 09:20 JFK 12:20
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86