角2应用在AWS泊坞窗容器中运行部署
您好研究员程序员,角2应用在AWS泊坞窗容器中运行部署
对于一个项目,我们创建了一个角2,这将是我们的GUI。 此GUI将从Amazon Web Services(AWS)托管的后端API获取他的数据。
图形用户界面也应该在AWS上运行,我们希望将它作为EC2上的Docker容器运行。
图形用户界面在我的电脑上正常工作,但我无法制作出一个Prober Docker容器,它既不能在我的电脑上工作,也不能在AWS上工作。
你们是否知道一个很好的Tutorial/Hello World项目,我可以学习如何在Docker中创建一个Angular 2应用程序?
一些更多的信息Im如何试图做到这一点:
我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
这是更实际的创建项目的构建,而不是使用整个angular-cli
功能,从一个角度所服务的客户端与乐队分离,关注和混淆。
为什么:
ng serve
是更多的发展环境下防止集中在开发过程中设立的网络服务器,后端代理等。但除此之外,angular-cli
也提供简单的构建工具。
创建一个构建:
ng build --prod
收集所有的依赖关系,并创建包含整个应用程序一个dist
文件夹。
该文件夹的内容可以在web服务器被复制像阿帕奇,nginx的或IIS
旁注:
当你的应用是不是在域上运行根,例如www.my.domain。com/subfolder为构建指定base href
属性也很重要。例如: -
ng build --prod --base-href /subfolder/
那么您的应用将www.my.domain.com/subfolder/正常运行和图像等所有资产等被加载。
我会为docker image'' build --production'提供一个生成运行,并使用像nginx或apache这样的web服务器来执行此操作。这可以防止在码头图像中提供整个打印稿代码 – Bernhard
为什么不使用s3? – taskiner
@Bernhard所以我得到我的'dist'目录并将它复制到nginx'nginx/html /'并构建一个nginx的docker容器,对不对? – sHamann