如何通过节点Jsdocker化Angular 2 Web应用程序?

我试过findDockerizing使用节点js的angular2 Web应用程序的许多方法,但还没有工作它在本地运行,但不是在docker容器上工作。任何人有任何适当的Dockerfilepackage.json文件的对接angular2应用程序。

在这里输入图像说明

FROM node:boron # Create app directory RUN mkdir -p /usr/src/app WORKDIR /usr/src/app # Install app dependencies COPY package.json /usr/src/app/ RUN npm install # Bundle app source COPY . /usr/src/app EXPOSE 5655 CMD [ "npm","start" ] 

访问时无法访问网站

下面是一些可能的方式,我发现栈上stream但不工作

 docker run --rm --name my-container -it -p 8080:4200 -v $(pwd):/var/www -w "/var/www" node npm start 

在package.json甚至我把我的端口保持为dynamic"ng serve -host 0.0.0.0",

还build议我哪个服务器,我需要使用nginx节点对接angular2 Web应用程序

 "scripts": { "start": "node ./bin/www", "build": "del-cli public/js/app && webpack --config webpack.config.dev.js --progress --profile --watch", "build:prod": "del-cli public/js/app && ngc -p tsconfig.aot.json && ngc -p tsconfig.aot.json && webpack --config webpack.config.prod.js --progress --profile --bail && del-cli 'public/js/app/**/*.js' 'public/js/app/**/*.js.map' '!public/js/app/bundle.js' '!public/js/app/*.chunk.js' 'assets/app/**/*.ngfactory.ts' 'assets/app/**/*.shim.ts'" } 

在这里输入图像说明

  1. 首先我build议在你的机器上运行“npm start”
  2. 并检查后,你可以在浏览器中达到你的angular度的应用程序;
  3. 如果这样做 – 你将需要记住你的angular度应用程序在哪个端口提供服务;
  4. 在EXPOSE行之前添加新的RUN部分“RUN npm run build:prod”;
  5. 在EXPOSE部分设置正确的端口;
  6. 运行你的容器:“docker run –rm –name my-container -it。”
  7. 打开浏览器http:127.0.0.1:HERE_PORT_FROM_EXPOSE_SECTION

这是一个小例子: https : //github.com/karlkori/dockerized-angular-app

另外我想补充说,对于生产来说,使用Nginx或者CloudFront会更好。