我很难理解 Docker 中 Angular 应用程序的整个过程。 那么Anguler需要一个Web服务器来运行(如nginx),但也需要nodejs来访问后端? 您是否已将其分成 2 个容器,或者您必须如何执行此操作?
我现在有 1 个容器,其中包含 Nodejs 基础镜像。在那里我执行了 npm install、bower install 和 gulp build 等。现在我可以访问 localhost:8888/api 来查看 Nodejs 的这一部分,但我无法访问我的 Angular 应用程序。可能是因为它不是由网络服务器托管?
最佳答案
NGINX 是一个前端服务器,它不做后端工作。这意味着您可以将应用程序跨 2 个环境(容器)分开:
- Node.js 服务器及其后端,
- NGINX 与 Angular 网站。
NGINX 会将请求路由到 Node 服务器,这就是整个通信。
从那里,您可以将这些单独的容器拉到生产服务器上。您还可以将其配置在同一个容器中,它们应该可以很好地协同工作。
如果您安装了所有内容,那么这应该是正确配置的问题。
您可以查看这篇文章作为如何设置一切的引用:
Node.js + Nginx - What now?
关于angularjs - Docker 和 Angular 应用程序 : one or two containers?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34787752/