Tag: docker elastic beanstalk

如何将PRE部署脚本添加到AWS Elastic Beanstalk Docker EC2实例,自定义AMI不起作用

我真的很喜欢这样一个事实,即我可以使用Elastic Beanstalk将Docker镜像推送到AWS ECR中。 唯一让我头痛的是缺less有关如何将预部署挂钩添加到Elastic Beanstalk EC2实例的信息? 如果我理解正确,.ebextensions脚本运行POST部署,所以这些不解决我的问题在这里。 我想出了一个解决scheme,我需要将在预部署阶段运行的脚本手动添加到EB EC2实例中。 更具体地说到目录中: 的/ opt / elasticbeanstalk /钩/ appdeploy /预 现在,每次我将新的应用程序版本部署到我的实例中,脚本就被执行了,而这正是我想要的。 但是,如果连接到我的EB环境的负载平衡器启动一个新的EB实例,它显然不包含手动添加的脚本,因此将无法运行我的应用程序。 我还尝试从运行的EB EC2容器创buildAMI,其中包含我的自定义预部署脚本,但由于某些原因,Docker无法在基于自定义AMI的新EB实例上启动。 eb-activity.log说: [2016-08-29T07:38:36.580Z] INFO [3887] – [Initialization/PreInitStage0/PreInitHook/01setup-docker-options.sh] : Activity execution failed, because: Stopping docker: [FAILED] Starting docker: ……….[FAILED (ElasticBeanstalk::ExternalInvocationError) caused by: Stopping docker: [FAILED] Starting docker: ……….[FAILED] (Executor::NonZeroExitStatus) 如果我SSH进入EB实例,并尝试手动启动Docker服务,结果相同: sudo service docker restart Stopping docker: […]

执行“eb本地运行”时出现“configurationregistry无效”错误

我认为这是一个很容易解决的问题,但我似乎无法解决它! 我花了很多时间在Google / SO上寻找任何线索,但没有解决。 执行eb本地运行时,出现registry错误的无效configuration {17-05-17 10:22}[2.3.1]me:~/Repositories/xxx@master✗✗✗✗✗✗ chris% eb local run ERROR: InvalidConfigFile :: Invalid configuration for registry 12345678.dkr.ecr.eu-west-1.amazonaws.com {17-05-17 10:22}[2.3.1]me:~/Repositories/xxx@master✗✗✗✗✗✗ chris% 我的Dockerrun.aws.json中的图像行如下所示: { "AWSEBDockerrunVersion": 2, "volumes": [ { "name": "frontend", "host": { "sourcePath": "/var/app/current/frontend" } }, { "name": "backend", "host": { "sourcePath": "/var/app/current/backend" } }, { "name": "nginx-proxy-conf", "host": { "sourcePath": "/var/app/current/config/nginx" } }, […]

AWS EC2容器服务/ Elastic Beanstalk Docker容器端口udp绑定

根据ECS任务定义的文档,这是我们如何定义端口映射。 "portMappings": [ { "containerPort": integer, "hostPort": integer } … ] 默认情况下,这是通过tcp绑定端口。 如何实现udp端口绑定到在AWS Elastic Beanstalk(多容器)或AWS ECS中运行的Docker容器?

在Elastic Beanstalk上挂载Docker nfs4

我被困在一个Docker容器中,在Elastic Beanstalk上运行,访问一个nfs4共享。 Netshare在运行Docker容器的EC2实例上运行。 在实例上手动安装nfs共享,我可以毫无问题地访问EC2实例上的共享。 但是,当我运行一个容器,试图挂载nfs4卷时,这些文件不会出现在容器内。 我这样做 首先,启动Docker主机上的netshare守护进程: sudo ./docker-volume-netshare nfs INFO[0000] == docker-volume-netshare :: Version: 0.18 – Built: 2016-05-27T20:14:07-07:00 == INFO[0000] Starting NFS Version 4 :: options: '' 然后,在Docker主机上,启动Docker容器。 使用-v创build挂载nfs4共享的卷: sudo docker run –volume-driver=nfs -v ec2-xxx-xxx-xxx-xxx.us-west-2.compute.amazonaws.com/home/ec2-user/nfs-share/templates:/home/ec2-user/xxx -ti aws_beanstalk/current-app /bin/bash root@0a0c3de8a97e:/usr/src/app# 根据netshare守护进程,这有效: INFO[0353] Mounting NFS volume ec2-xxx-xxx-xxx-xxx.us-west-2.compute.amazonaws.com:/home/ec2-user/nfs-share/templates on /var/lib/docker-volumes/netshare/nfs/ec2-xxx-xxx-xxx-xxx.us-west-2.compute.amazonaws.com/home/ec2-user/nfs-share/templates 因此,我尝试在新启动的容器中列出/home/ec2-user/xxx的内容 – 但它是空的? root@0a0c3de8a97e:/usr/src/app# ls /home/ec2-user/xxx/ root@0a0c3de8a97e:/usr/src/app# […]