在一台 Nginx Server 上基于多个代码仓库提供静态内容,怎么设计容器化?

2021-07-08 08:00:42 +08:00
 whileFalse
现有结构:
1. 有数个代码仓库,可以分别构建和部署。使用 npm build 构建,然后 ansible 传输到 web 服务器的不同路径下。
2. web 服务器部署了 Nginx,为单个站点提供服务。根据用户访问的 path,使用文件系统中各个路径的静态文件提供内容。配置文件写的比较随意且复杂。

现在希望将此系统容器化。
一个可行的方法是为每一个代码仓库构建一个包含静态文件的 Nginx 镜像。然后部署一个主 Nginx,作为各个静态 Nginx 的反代。但这需要拆分并重写 Nginx 配置,似乎有点麻烦。

如果我希望各个代码仓库只构建包含文件镜像,然后与主 Nginx 共享文件,能实现吗?
1288 次点击
所在节点    问与答
5 条回复
kyrre
2021-07-08 08:16:07 +08:00
你是把容器里的某个目录共享出来挂到宿主机上?感觉为了容器而容器,还不如你打包好了传到各自的路径下直接。
happypy1
2021-07-08 08:21:17 +08:00
如果只是共享文件,我感觉你可以直接把配置文件挂载在你的容器上。
whileFalse
2021-07-08 08:30:14 +08:00
@kyrre 日后会考虑干掉宿主机,用无服务器容器

@happypy1 现在 nginx conf 之类的都是放在宿主机上,没有用 Git 管理。想容器化也是想吧 config 版本话。
cominghome
2021-07-08 08:44:47 +08:00
一个可行的方法是为每一个代码仓库构建一个包含静态文件的 Nginx 镜像。然后部署一个主 Nginx,作为各个静态 Nginx 的反代。但这需要拆分并重写 Nginx 配置,似乎有点麻烦
--- 麻烦个寄吧,分分钟解决的事情(另外,这个是最合理的)

如果我希望各个代码仓库只构建包含文件镜像,然后与主 Nginx 共享文件,能实现吗?
--- 歪门邪道,这种操作镜像的意义是啥
crescentBLADE
2021-07-08 11:41:33 +08:00
如果只是 config 版本化,nginx 是支持指定配置文件的吧

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/788199

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX