首页 > 解决方案 > 带有代理的客户端应用程序的 Docker 或 Docker-compose

问题描述

我有一个用于代理的react应用程序。go我在是否使用docker-compose或使用单个Dockerfile. 想得到一个意见,为什么你认为一个或另一个更好?仅供参考,我们使用来自客户端应用程序的相对 API 路径。

标签: reactjsdockerdocker-compose

解决方案


如果你将它作为多个容器运行——React 应用程序运行的是非生产开发服务器,而 Go 应用程序只有一个 HTTP 代理——那么你可能会发现使用 Compose 运行起来要容易得多。

您可能不想在生产中运行开发服务器。通常使用 Webpack 之类的工具将 React 应用程序编译为静态文件。一旦你这样做了,你就可以将这些静态文件包含在 Go 应用程序容器中(或者甚至将它们嵌入到 Go 二进制文件中)。Docker多阶段构建可以很好地处理这种情况,使用第一阶段FROM nodeto RUN npm run build,第二阶段FROM golang构建二进制文件,最后阶段FROM ubuntu组合运行时的各个部分。那时您将只有一个容器,您可以选择仅docker run使用容器还是将其包装在docker-compose.yml文件中更方便。

无论如何,您可能希望避免在部署时配置不必要的东西。command:例如,如果可以,请避免指定 Compose ;不要volumes:用于注入或覆盖应用程序的重要部分。如果你有一个涉及的docker run命令,那么在 Compose 中重写它会更容易重新运行它,但最好还是只需要更少的参数来启动容器。


推荐阅读