Angular 2 app部署在AWS

时间:2017-04-26 05:57:52

标签: angular amazon-web-services docker amazon-ec2 dockerfile

Hello Fellow Programmer,

对于一个项目,我们创建了一个Angular 2,它将是我们的GUI。 该GUI将从Amazon Web Services(AWS)托管的Backend-API获取其数据。

GUI也应该在AWS上运行,我们想把它作为EC2上的Docker容器运行。

GUI在我的电脑上工作正常但我无法制作探针式Docker容器,它既不能在我的电脑上工作,也不能在AWS上工作。

你们知道一个好的Tutorial / Hello World项目,我可以在那里学习如何在Docker中创建一个Angular 2应用程序吗?

有关我如何尝试这样做的更多信息:

我的Dockerfile

 # Create image based off of the official Node 6 image
 FROM node:6

 # Create a directory where our app will be placed
 RUN mkdir -p /usr/src/app

 # Change directory so that our commands run inside this new dir
 WORKDIR /usr/src/app

 # Copy dependency definitions
 COPY package.json /usr/src/app

 # Install dependecies
 RUN npm install

 # Get all the code needed to run the app
 COPY . /usr/src/app

 # Expose the port the app runs in
 EXPOSE 4200

 # Serve the app
 CMD ["npm", "start"]

更改package.json

  {
    ...
    "scripts": {
       "start": "ng serve -H 0.0.0.0",
       ...
     },
    ...
  }

运行docker build -t gui:test .

运行docker run --name gui -p 4200:4200 gui:test

如果我做得正确localhost:4200应该向我展示我正在运行的Angluar 2应用程序,但他没有。

修改 恶魔与港口提供的IP不起作用192.168.99.100:4200

1 个答案:

答案 0 :(得分:1)

创建项目的构建更实际,而不是使用整个angular-cli功能从带宽,分离关注和混淆的角度为客户端提供服务。

为什么:

ng serve更适用于开发环境,无法在开发过程中专注于设置Web服务器,后端代理等。但除此之外,angular-cli还提供了简单的构建工具。

创建构建:

ng build --prod收集所有依赖项并创建一个包含整个应用的dist文件夹。

此文件夹的内容可以复制到 Apache nginx IIS

等网络服务器上

<强> 旁注:

当您的应用未在您的域根目录上运行时,例如 www.my.domain.com/subfolder 为构建指定base href属性也很重要。 e.g:

ng build --prod --base-href /subfolder/

然后您的应用将在 www.my.domain.com/subfolder / 上正常运行,并且所有资源(如图片等)都会被加载。