Tag: elastic beanstalk

Elastic Beanstalk运行一周后CPU负载很高

我正在AWS Beanstalk上运行单实例工作器。 这是一个单容器的Docker,每个工作日运行一次。 大多数情况下,这些进程同步S3中的大量小文件并分析这些文件。 该设置运行良好大约一个星期,然后CPU负载开始时间线性增长,如在此屏幕截图。 CPU负载保持在相当的水平,放慢我的预定进程。 同时,我在容器内运行的顶级资源跟踪( 特权的 Docker模式启用它): echo "%CPU %MEM ARGS $(date)" && ps -e -o pcpu,pmem,args –sort=pcpu | cut -d" " -f1-5 | tail 几乎没有CPU负载(仅在我的日常过程运行的时间内发生变化,看起来准确地反映了那些时间的系统负载)。 这个“背景”系统负载的来源是什么? 想知道是否有人看到一些类似的行为,并且/或者可以从正在运行的容器内部build议额外的诊断。 到目前为止,我一直在重新启动设置每周删除“背景”的负载,但这是次优,因为每次重新启动后第一次运行必须从S3收集超过100万的小文件(而随后的每日运行只添加每天几千个文件)。

用Dockerrun.aws.json和Elastic Beanstalk命名一个Docker容器

我需要在EB应用程序上执行后期部署脚本。 我需要在多容器Docker环境中的Docker容器上执行命令。 问题是Docker容器被分配了一个随机的哈希值作为容器名称。 我已经四处search,似乎无法find任何信息,您可以在EB的构build和设置过程中,如何分配名称到Docker容器。 有没有人有任何见解呢? 我知道与docker,撰写这不是一个问题。

Elastic Beanstalk在Docker-Compose上看不到公开的端口

我有一个凤凰应用程序,我试图推动AWS /弹性beanstalk。 现在我遵循这个指南,并确认Docker-compose和run命令在localhost https://github.com/dreamingechoes/docker-elixir-phoenix上工作 。 但是,我很难通过eb cli接口将项目部署到弹性beanstalk。 这是运行后得到的错误 eb create projectName ERROR: No EXPOSE directive found in Dockerfile, abort deployment ERROR: [Instance: i-0cabfeaad7423be93] Command failed on instance. Return code: 1 Output: No EXPOSE directive found in Dockerfile, abort deployment. 我的文件: Dockerfile: # Versions # # Erlang: 1:20.0 # Elixir: 1.5.0 # Phoenix: 1.3.0 FROM ubuntu:14.04 […]

Elastic Beanstalk Docker – 如何获取容器日志

我有一个运行在Elastic Beanstalk的docker容器中的Apache2 perl应用程序,并且在Apache2日志中遇到问题。 这是我的Dockerrun.aws.json文件… { "AWSEBDockerrunVersion": "1", "Ports": [ { "ContainerPort": "80" } ], "Volumes": [ { "HostDirectory": "/container_mnt/www/", "ContainerDirectory": "/var/www/" }, { "HostDirectory": "/var/log/docker_apache2/", "ContainerDirectory": "/var/log/apache2/" } ], "Logging": "/var/log/docker_apache2" } 我有一个.ebextensionsconfiguration文件,设置实例文件夹… container_commands: 01-command: command: mkdir -p /container_mnt 02-command: … do stuff to setup my application folder in /var/www/ … 03-command: command: mkdir -p […]

如何在AWS Beanstalk上的Dockerfile中绑定发布端口

我尝试在aws上部署asp.net docker 这是我的Dockerfile(来自微软docker的例子) FROM microsoft/aspnet COPY . /app WORKDIR /app RUN ["kpm", "restore"] EXPOSE 80:80 ENTRYPOINT ["k", "kestrel"] 问题是。 我可以使用命令行来调用[docker run -p 80:80 image]来正确运行docker 但是,当我使用AWS Beanstalk部署我的dockerfile。 它不能自动将公共端口映射到docker端口。 我需要再次运行docker run -p以使其可用 在开始时,有工作的图像和运行的容器。 但它似乎无法映射端口,所以它死亡。 然后我需要再次使用-p运行一个运行命令来使其工作 我没有线索aws如何运行docker与-p在哪个端口。 请帮帮我

Docker中的Laravel没有识别环境variables

我在Docker中使用环境variables时遇到了问题。 出于某种原因,Laravel无法看到我在Dockerfile中设置的环境variables。 像APP_KEY,APP_ENV等,但是当我SSH进入docker集装箱: docker exec -it [container_name] bash 并运行以下命令: php artisan tinker > print_r($_ENV) 环境variables存在并被设置为适当的值。 但是,当我试图在刀片模板中做同样的事情时,我根本没有看到APP_KEY,APP_ENVvariables。 我已经编辑了Docker容器中的php.ini文件,以便它显示 variables_order = 'EGPCS' .env文件是我可以将环境variables传递给Laravel的唯一方法吗? 我感谢你的帮助。 干杯

AWS beanstalk中的docker容器中的JVM内存设置

我在Docker容器中运行我的Java应用程序。 我使用AWS Beanstalk。 docker的基础图像是CentOS。 我在Amazon Linux AMI for Beanstalk上的EC2实例上使用4GB内存运行容器。 我应该如何configuration容器和JVM内存设置。 现在我有: 亚马逊Linux Beanstalk AMI ec2实例上的4GB 我专门为docker集装箱devise了3GB的4 { "AWSEBDockerrunVersion": 2, "Authentication": { "Bucket": "elasticbeanstalk-us-east-1-XXXXXX", "Key": "dockercfg" }, "containerDefinitions": [ { "name": "my-service", "image": "docker-registry:/myapp1.0.2", "essential": true, "memory": 3184, "portMappings": [ { "hostPort": 80, "containerPort": 8080 } ] } } JVM设置是 -Xms2560m -Xmx2560m -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=70 […]

sbt-native-packager与Docker和Elastic Beanstalk合作

我正在使用sbt-native-packager将我的Pl​​ayframework应用程序部署为Elastic Beanstalk作为Docker容器。 这一切都工作得很好,但我需要定制ELB实例。 亚马逊文件在这里 ,你通过创build一个.config文件“在你的源包的.ebextensions顶级目录中。 看起来很简单,但我不知道什么是最好的方式来让本地包打包机拿起我的.ebextensions目录,并把它放在正确的地方。 我知道是否使用命令docker build -t my-docker-app /my-project-root创build了捆绑包我将该目录粘贴在my-project-root ,但是我很困惑与原生打包。 提前致谢!

无法访问jarfile – Elastic Beanstalk上的Docker

我正在尝试将Spring Boot应用程序的Docker镜像部署到AWS Elastic Beanstalk,并在/var/log/eb-activity.log中遇到此错误: Docker容器在启动后意外退出:Docker容器意外退出Wed Jun 22 11:56:25 UTC 2016: 错误:无法访问jarfile /home/packedit/app/packed-it.jar。 检查快照日志的详细信息。 (执行人:: NonZeroExitStatus) 这是使用以下Dockerrun.aws.json的Elastic Beanstalk上的单个容器: { "AWSEBDockerrunVersion": "1", "Image": { "Name": "packedit/packedit-api", "Update": "true" }, "Ports": [ { "ContainerPort": "8080" } ], "Volumes": [ { "HostDirectory": "/var/app/packedit", "ContainerDirectory": "/home/packedit/app" } ], "Logging": "/home/packedit/app/logs" } 这是Dockerfile: FROM java:8 MAINTAINER my@email.com VOLUME /tmp EXPOSE 8080 […]

如何使用Elastic Beanstalk多容器环境共享AWS EC2实例

比方说,我有两个Docker容器1和2.我想要使用多容器Docker Images将它们部署到AWS Elastic Beanstalk,以便我有以下EC2实例来降低成本: testing环境 ELB应用程序负载平衡器(多less?) EC2实例1 docker集装箱1 docker集装箱2 生产环境 ELB应用程序负载平衡器(多less?) EC2实例2 docker集装箱1 docker集装箱2 EC2实例3 docker集装箱1 docker集装箱2 所以我的问题是: 我需要创build多less个Elastic Beanstalk应用程序? 从文档中不清楚。 如何获取Container的1和2来共享EC2实例。 负载平衡器是为你创build的,但是每个docker容器都需要它自己的端口80,所以需要创build多less个ELB。 这个怎么用?