【发布时间】:2019-12-23 14:56:52
【问题描述】:
React 应用程序是一个客户端,因此它有一些端点可以连接(无论是 axios http 还是 websocket)
通常,类似后端的客户端(各种模块化服务器微服务)从 ENV 获取它,这是在容器构建过程中设置的,并在 docker-compose.yml 文件中声明。启动应用程序需要构建过程中的所有内容,最后一步是运行命令。
React Frontend 也需要构建过程,但这在某种意义上有所不同,您实际上在构建完成时并没有运行“bundle.js”,并且在构建之后不需要所有其余部分。实际上,我在主机上构建,在 docker-compose.yml 中,我说:“nginx 映像”和“将外部配置和静态文件挂载为卷”。但是这样我就不能使用端点,并且后端 api 的 nginx 代理不起作用。
我是否应该编写 Dockerfile 来构建前端,以及如何将其集成到 nginx 生成的图像中? (为了构建我需要节点映像,但为了运行我需要 nginx,同时删除源和包..
试图在短期内改写它
- 在开发模式下 backend:someport 在本地运行,前端 webserver:80 正在代理 api 请求到 localhost:someport
- 如果您将后端放入容器中,一切都不会改变
- 如果你把 webserver 放在容器中 localhost:someport 将停止工作,因为没有没有后端:someport 在该容器内运行,显然......
- 生产前端需要构建过程,其中涉及大量临时文件
解决方案?
【问题讨论】:
标签: docker nginx docker-compose dockerfile nginx-config