如何在不使用ng服务的情况下投放Angular 5应用程序?
我可以用ng serve
来构build和服务Angular 5项目,并在浏览器中查看它。 我想将文件移动到Docker容器上,因为我的最终应用程序需要一个php后端。
当我将与ng serve
运行相同的文件系统移动到docker版本并尝试导航到它时,我收到一个服务器错误。
我知道容器工作正常,因为我可以PHP文件浏览器在各自的本地端口没有任何问题。 所以它需要是Angular导致错误的东西。
我注意到, ng new angular-tour-of-heroes
项目没有在根项目目录中的index.html。 当我将src/
文件夹中的文件移动到根目录时,浏览器中仍然没有任何东西。
我如何使用Docker而不是ng serve
来使用Angular应用程序?
这个答案将是两个部分,因为听起来你可能不熟悉构build过程。
build造
这对于大多数JavaScript框架来说是更通用的。 通常会有一个“构build”的过程,它会以某种方式产生静态的Web应用程序,使得它可以被Web服务器所服务。
在Angular的情况下,这是ng build
。 您可以通过https://github.com/angular/angular-cli/wiki/build了解有关该命令的更多信息。 ng build
命令将在您的项目中创build一个dist
目录,其中包含构build的HTML,CSS <和JavaScript所在的目录。 这个目录中的文件是你要推送到你的Web服务器的服务。
docker
现在我们了解如何获取Web应用程序的源代码,我们希望将其作为容器运行。 基于你的问题,我假设你已经有一个Web服务器的Docker镜像。 在这种情况下,您可以将dist
文件夹复制到与构buildWeb服务器的现有Dockerfile
相同的位置,并将一行添加到Dockerfile
例如:
COPY dist/* /my/webserver/root
如果您可以提供有关您的现有图像, Dockerfile
和环境的更多信息,我可以提供一个更好的示例,将Angular应用程序构build并生成到最终的Web服务器映像。
虽然,您不一定需要从您的PHP应用程序提供Angular应用程序。 如果您的Angular应用程序连接到PHP应用程序,它们仍可能是独立的Docker镜像和连接在一起的容器。
- Dockerizing在节点中运行的任何Angular SPA应用程序
- Docker – 带有Angular 4模板的ASP.NET Core 2.0
- 用nginx构builddocker镜像
- Docker容器中的Angular2部署会干扰路由
- 在Docker镜像中的构build错误
- Angular 2应用程序部署在AWS上运行的Docker容器中
- Angular&Docker:环境感知configuration
- 如何在Laravel的Docker容器中运行和安装Protractor E2Etesting?
- angular2应用程序在nginx:稳定的高山docker图像尝试获取sockjs的URL,当我绑定主机8080 – >容器80,但不是80-> 80