Tag: amazon web services

在AWS Beanstalk Docker上部署Play Framework时出错

我在Docker上运行AWS Beanstalk上的Play Framework应用程序(运行Docker 1.6.0的64位Amazon Linux 2015.03 v1.4.1)。 Docker文件: FROM relateiq/oracle-java8 MAINTAINER XXXX EXPOSE 9000 ADD files / WORKDIR /opt/docker RUN ["chown", "-R", "daemon", "."] RUN ["chmod", "+x", "bin/app"] USER daemon ENTRYPOINT ["bin/app"] CMD [] Dockerrun.aws.json { "AWSEBDockerrunVersion": "1", "Ports": [{ "ContainerPort": "9000" }] } 当实例第一次启动,我得到约1分钟的地方,正常部署,然后我浏览几页后,错误显示: 502 Bad Gateway nginx/1.6.2 ElasticBeanstalk日志中的错误是: Play server process ID is […]

如何在Elastic Beanstalk多容器docker上使用fluentd日志驱动程序

我试图用下面的Dockerrun.aws.json来使用fluentd日志驱动程序, { “AWSEBDockerrunVersion”:2, “containerDefinitions”:[ { “name”:“apache”, “image”:“php:5.6-apache”, “必不可less”:真, “记忆”:128, “portMappings”:[ { “hostPort”:80, “containerPort”:80 } ] “logConfiguration”:{ “logDriver”:“fluentd”, “选项”:{ “fluentd-address”:“127.0.0.1:24224” } } } ] } 但发生以下错误。 ERROR: Encountered error starting new ECS task: {cancel the command. "failures": [ { "reason": "ATTRIBUTE", "arn": "arn:aws:ecs:ap-northeast-1:000000000000:container-instance/00000000-0000-0000-0000-000000000000" } ], "tasks": [] } ERROR: Failed to start ECS task after retrying […]

在Dockerrun源码包中部署AWS Elastic Beanstalk Docker部署中的ebextensionsconfiguration的位置?

我有困难让我的docker弹性beanstalk部署来读取我的.ebextensions / setup.config文件。 eb环境configuration的文档说: 您可以在源包中包含一个或多个configuration文件。 必须使用扩展名.config(例如myapp.config)来命名configuration文件,并将其放在源包中的.ebextensions顶级目录中。 然而,对于Docker来说,源代码包不是.zip或.war文件,而是一个.json文件,例如文档说创build一个Dockerrun.aws.json文件 – 它看起来就像源代码包? 在创build一个版本的应用程序时,我将一个自定义的Dockerrun-$VERSION.aws.jsonfile upload到s3,运行如下所示(其中$APP是版本化的dockerrun json文件): aws elasticbeanstalk create-application-version \ –application-name $APP_NAME \ –version-label $VERSION \ –source-bundle S3Bucket=$S3_BUCKET,S3Key=$S3_PATH/$APP 那么…当“bundle”只是一个结束构build容器的json文件时,如何在源包的顶级目录中find.ebextensions目录? (我的第一个尝试就是把它放在项目的根目录中,但是这不起作用。)

从Docker容器内访问RDS没有通过安全组?

我试图运行一个Web服务器,在docker集装箱内使用EC2的RDS数据库。 我已经设置了安全组,所以EC2主机的angular色被允许访问RDS,如果我尝试从主机直接访问它,一切正常。 但是,当我在主机上运行一个简单的容器并尝试访问RDS时,它会被阻塞,就好像安全组没有让它通过一样。 经过一系列的试验和错误,似乎容器的请求并不是来自EC2主机,所以防火墙说没有。 我可以在短期内通过在docker容器上设置–net = host来解决这个问题,但是这会破坏很多伟大的dockerfunction,比如能够映射端口的function(例如,现在我需要确保容器的每个实例用手在不同的端口上侦听)。 有没有人find解决办法? 如果您实际使用任何AWS资源,在AWS中运行容器似乎是一个相当大的限制。

将Perl Docker容器部署到Elastic Beanstalk

我正在构build一个Docker容器,它从bitbucket中获取perl / mojolicious回购,但是我遇到了问题。 我有我的Dockerfile像这样: # DOCKER-VERSION 0.3.4 FROM perl:latest MAINTAINER My Name myname@name.com # Update aptitude with new repo RUN apt-get update # Install software RUN apt-get install -y git # Make ssh dir RUN mkdir /root/.ssh/ # Copy over private key, and set permissions ADD repo-key /root/.ssh/id_rsa # Create known_hosts RUN touch /root/.ssh/known_hosts # […]

Docker容器似乎“inheritance”了主机ec2的实例configuration文件。 怎么样?

我们有一个在ec2主机上运行的docker容器。 在Docker容器中,我们运行一些aws cli命令。 我们尚未在容器中定义任何AWS凭证。 这意味着容器inheritance主机ec2的实例configuration文件。 我的假设是真的吗? 如果是这样,容器如何inheritance实例configuration文件凭据? 其次(可能有关)aws cli做什么来获取实例configuration文件凭据? 它是否调用元数据端点(169.254.169.254)? 例如,如果凭证是从环境variables中提取的,则凭证是硬编码的,可以看到,但实例configuration文件的凭据实际驻留在哪里?

如何在Elastic Beanstalk应用程序中的Docker容器之间共享卷?

我试图在多容器 AWS EC2实例中运行的两个Docker容器之间共享数据。 通常,当我运行容器时,我将指定卷作为命令标志,即: docker run -p 80:80 -p 443:443 –link Widget:Widget –volumes-from Widget –name Nginx1 -d nginx1从Widget共享一个卷到Nginx1。 但是,由于Elastic Beanstalk要求您在dockerrun.aws.json文件中指定Dockerconfiguration,然后在内部处理运行Docker容器,所以我一直无法弄清楚如何在容器之间共享数据卷。 请注意,我没有试图将数据从EC2实例分享到Docker容器中 – 这部分似乎工作正常; 相反,我想直接从一个Docker容器共享数据到另一个。 我知道docker容器卷与主机在"/var/lib/docker/volumes/fac362…80535"等共享,但由于这个位置不是静态的,我不知道我将如何引用它在dockerrun.aws.json文件。 有没有人find解决scheme或解决方法? dockerrun.aws.json和configurationEB在这里寻找更多信息: http : dockerrun.aws.json 谢谢!

ECS代理无法成功从ECR中拉出图像

我有一个ECSpipe理的EC2实例在VPC中运行(在一个私有子网中)。 当试图在这个实例上运行一个任务时,它似乎不能拉出图像。 据我可以从文档中得出,没有特殊的configuration需要从ECS代理从回购拉图像。 看看Docker日志我反复看到以下内容: level=error msg="Download failed, retrying: dial tcp 54.231.17.81:443: i/o timeout" ecs-agent日志反复显示图像不在下载: Pulling image module="TaskEngine" image="REDACTED.dkr.ecr.us-east-1.amazonaws.com/REDACTED:latest" status="Retrying in 19 seconds" 它最终试图运行图像,但显然失败并退出。 在“群集任务”选项卡中给我下面的消息: STOPPED (Essential container in task exited) amzn-ami-2016.03.e和amzn-ami-2016.03.d AMI都发生此错误 是否有任何特定的configuration或networking规则,我需要申请才能从ECR拉? 任何帮助在这里将不胜感激。 作为一个方面的说明,实例确实可以访问互联网(Pinging google.com工作正常),当我试图从Docker Hub中提取图片时,它也可以正常工作。

AWS ElasticBeanstalk找不到Dockerfile

我有以下目录布局 ./www/index.php Dockerfile apache-config.conf 然后将文件压缩并上传到Elastic Beanstalk,但是我收到以下错误消息: [Instance: i-572d1ae8] Command failed on instance. Return code: 1 Output: Dockerfile and Dockerrun.aws.json are both missing, abort deployment. Hook /opt/elasticbeanstalk/hooks/appdeploy/pre/03build.sh failed. For more detail, check /var/log/eb-activity.log using console or EB CLI. 日志文件包含以下消息: AppDeployPreHook/01unzip.sh] : Completed activity. Result: Archive: /opt/elasticbeanstalk/deploy/appsource/source_bundle creating: /var/app/current/DI_Test/ inflating: /var/app/current/DI_Test/.DS_Store creating: /var/app/current/__MACOSX/ creating: /var/app/current/__MACOSX/DI_Test/ inflating: /var/app/current/__MACOSX/DI_Test/._.DS_Store […]

是否可以从Docker镜像创buildAWS AMI?

我在我的AWS ECR中有一个Docker镜像,我想将其转换为AWS AMI以创build具有该环境的实例。 尝试在Docker容器上使用AMI的原因 我不得不在一些文本文件的m4.xlarge实例中的Docker容器中运行计算密集的ML任务。 但是,在Docker中,实例的CPU利用率达到了100%,并且脚本正在被成熟地杀死。 但是,它在Docker外部的相同实例中运行良好。 所以,我想从Docker迁移到AMI,但是我也想利用Docker来创build环境,以及在本地启用的testing的速度。 那么, 是否有可能通过我testing并部署到我的ECSregistry的Docker映像创buildAMI ?