如何通过节点js对Angular 2 Web应用程序进行Docker化?

时间:2017-04-07 11:37:22

标签: node.js angular docker dockerfile docker-machine

我尝试使用节点js找到Dockerizing角度2 web应用程序的许多方法,但还没有工作,它在本地运行但不在docker容器上工作。有没有人有任何正确的 Dockerfile package.json 文件,用于对接角度2 app。

enter image description here

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" ]

访问

时无法访问网站

以下是我在堆栈上发现的一些可能的方法但没有工作

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

即使我将我的端口保持为动态"ng serve -host 0.0.0.0",

并且还建议我使用 nginx 节点来使用哪个服务器用于对接角度2 web-app

"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'"
  }

enter image description here

1 个答案:

答案 0 :(得分:1)

  1. 首先,我建议运行" npm start"在你的机器上;
  2. 并检查在此之后您是否可以在浏览器中与您联系角度应用程序;
  3. 如果这样做 - 你需要记住你的角度应用程序在哪个端口服务;
  4. 添加新的RUN部分" RUN npm run build:prod"在EXPOSE行之前;
  5. 在EXPOSE;
  6. 部分设置正确的端口
  7. 运行你的容器:" docker run --rm --name my-container -it。"
  8. 在http:127.0.0.1打开浏览器:HERE_PORT_FROM_EXPOSE_SECTION
  9. 这是一个小例子: https://github.com/karlkori/dockerized-angular-app

    此外,我想补充说,对于制作来说,最好使用Nginx或CloudFront。