[英]How to upload project into Amazon ECS using cli
我正在学习如何使项目交付自动化。 我能够创建集群,但是我陷入了必须将文件上传到EC2实例的步骤。
现在我正在运行这些命令
ecs-cli up --keypair my_keypair --capability-iam --size 1 --instance-type t2.micro --force
这将创建集群。 然后我为php和nginx创建docker容器。
ecs-cli compose up
这将创建容器,但不包含任何文件。
现在,如果我使用SSH 手动登录到EC2实例并创建phpinfo.php文件,那么我可以在浏览器中查看它,告诉我所有设置均正确。 但这是手动步骤。 如何自动推送项目文件?
可能是我不了解它是如何工作的,而且方向错误。 我看到的所有教程都使用现成的wordpress图像。 我没有部署wordpress图片。 我想部署phpinfo.php(例如)。
谢谢
version: '2'
services:
nginx:
image: tutum/nginx
cpu_shares: 50
mem_limit: 134217728
ports:
- "80:80"
links:
- phpfpm
volumes:
- /home/ec2-user/nginx/conf:/etc/nginx/sites-available/
- /home/ec2-user/nginx/conf:/etc/nginx/sites-enabled/
- /home/ec2-user/public:/var/www/html
phpfpm:
image: php-nginx-fpm:7.0.19-37
cpu_shares: 50
mem_limit: 134217728
ports:
- "9000:9000"
- "3306:3306"
volumes:
- /home/ec2-user/public:/var/www/html
由于您使用的是ECS(弹性容器服务),因此需要首先对应用程序进行Dockerize,然后将生成的Docker映像上传到Amazon ECR :Elastic Container Registry。
为此,您需要进入EC2容器服务->注册表并为容器创建一个存储库。 然后配置
在你的源代码,你需要有建立你的容器Dockerfile:从基本映像,然后开始ADD
荷兰国际集团源代码的容器。
一旦有了它,您要么需要构建构建服务器来构建并推送docker容器,要么只是从您的机器上手动完成。
您将ECS服务设置为使用来自ECR的docker映像,并且当您将docker push到ECR时,您将“更新”任务定义,以便其获取docker容器的最新版本。
您可以在开始时通过aws cli,通过Web控制台本身(单击单击)或通过某些基础设施配置工具(例如Cloudformation或Terraform)来设置ECS和ECR。 无论哪种方式浮动您的需求...
您可以使用S3存储桶轻松实现这一目标。 请按照以下步骤操作:
在S3中创建存储桶,然后使用控制台或以下命令从本地文件夹中将代码上传到S3
aws s3同步。 s3:// mybucket
现在在AWS中创建EC2角色并添加S3读取权限。
每当您想在EC2中使用代码时,都可以使用以下命令下载(也可以在引导脚本中包含此命令)
aws s3 sync s3:// mybucket。
好的部分是S3 sync命令将仅上载/下载增量文件。 因此,如果仅修改一个文件并执行上述命令,则只有修改后的文件将被上传到S3并下载到EC2。
您可以使用scp。 这使用ssh以一种更容易实现自动化的方式来复制文件。
scp file <sshtarget>:/path/to/file
如果您愿意更改部署过程,则可以使用CloudFormation模板。
本页介绍如何部署已包含文件的ec2实例。 (请查看第2步中的“文件”部分)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.