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
答案 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 / 上正常运行,并且所有资源(如图片等)都会被加载。