@Rawkode 很好地解释了一切。我将在您的最后一点上添加一些内容。
要使用 ec2 实例运行基于 docker 的应用程序,您可以使用
在 Amazon EC2 容器服务 (Amazon ECS) 上部署 Docker 容器
Amazon EC2 Container Service (Amazon ECS) 是您用来在可扩展集群上运行 Docker 应用程序的 Amazon Web 服务。
您可以使用 docker 运行您的 Angular 应用程序。正如您在评论中提到的,您可以使用ng build --prod。哪个为您构建和创建 dist 文件夹。这里是我如何在 AWS 中部署基于 Angular Docker 的应用程序。
首先,创建一个快速服务器,它将为您的静态文件提供服务。
var express = require('express');
var path = require('path');
var router = express.Router();
var app = express();
// serve angular front end files from root path
app.use('/', express.static('dist', {
redirect: false
}));
// rewrite virtual urls to angular app to enable refreshing of internal
pages
app.get('*', function(req, res, next) {
res.sendFile(path.resolve('dist/index.html'));
});
app.listen(3000, function(req, res) {
console.log("start");
})
所以这将为您的角度静态文件提供服务,S3 您将面临刷新错误,可以使用重写规则解决。
为 express 创建 docker 文件,express 将处理静态文件
FROM alpine
RUN apk update && apk upgrade
RUN apk add nodejs
RUN mkdir -p /app
ADD app/package.json /app
WORKDIR /app/
ENV HOME /app
ENV NODE_ENV development
RUN npm install
ADD app /app
EXPOSE 3000
CMD npm start
在快速服务器文件所在的app文件夹中,将dist文件夹放在同一目录中。
现在要部署基于 docker 的应用程序,请访问此链接
https://aws.amazon.com/getting-started/tutorials/deploy-docker-containers/
在 AWS 上托管 Web 应用程序的最佳实践
以上我只是试图解释如何在 AWS ECS 上运行 Angular 应用程序,您可以通过运行同一任务的多个副本并配置 负载均衡器.
至于最佳实践是对 Web 应用程序的关注
对于静态应用程序
更多详情best-practices-for-hosting-web-applications-on-aws
Docker 和 AWS 联手让在 Amazon 的 EC2 基础设施上部署企业容器即服务 (CaaS) Docker 环境变得比以往更容易。在 AWS 上运行 Docker Datacenter 可为开发人员和 IT 运营人员提供一种高度可靠、低成本的方式,只需单击一下即可部署生产就绪型工作负载。
https://www.docker.com/aws
secrets-for-amazon-ec2-container-service
aws-for-startups-architectural-best-practices-automating-your-infrastructure