我有一个AngularJS应用程序,它具有以下结构:
app/
----- controllers/
---------- mainController.js
---------- otherController.js
----- directives/
---------- mainDirective.js
---------- otherDirective.js
----- services/
---------- userService.js
---------- itemService.js
----- js/
---------- bootstrap.js
---------- jquery.js
----- app.js
views/
----- mainView.html
----- otherView.html
----- index.html
我该如何创建自己的镜像并在容器上运行它呢?我试过用Dockerfile运行它,但没有成功,我对Docker相对较新,所以如果这很简单,我道歉。我只是想在http服务器上运行它(也许使用nginx?))
我试过这些方法,但没有成功:
4条答案
按热度按时间x9ybnkn61#
首先,遵循这个最佳实践指南来构建你的Angular 应用结构。index.html应该放在根文件夹中。我不知道如果下面的步骤将工作,如果它不在那里。
要使用nginx,您可以遵循这个小教程:Dockerized Angular app with nginx
1.在应用的根文件夹中创建一个Dockerfile(在index.html旁边)
2.在Dockerfile的文件夹中运行
docker build -t my-angular-app .
。3.
docker run -p 80:80 -d my-angular-app
然后您可以访问您的应用程序http://localhostfivyi3re2#
基于@adebasi的答案,我想强调this Dockerfile将用于当前的Angular CLI应用程序。
它使用了17.05中引入的Dockers的multi-stage build feature。在步骤1中,Node容器仅用于创建构建。最终的图像将使用Nginx并静态交付构建的文件。
vaj7vani3#
一般而言,
Docker用于将应用对接。现在一个应用程序不仅仅是由JavaScript组成的(因为AngularJS是一个JS框架),除非你选择一个后端框架,如Node,ASP.NET Core,Python等。因此,如果您只有简单的HTML应用程序,请使用Robbie提到的反向代理或Web服务器容器。举一个简单的例子(Nginx的例子):
hfwmuf9z4#
从angular项目的
package-lock.json
文件中获取app-name