Tag: 弹性beanstalk

AWS ElasticBeanstalk Multidocker未使用正确的Cmd创buildECS任务

我使用multidocker选项在AWS ElasticBeanstalk上部署节点应用程序。 该应用程序似乎部署成功,但是,我注意到,应用程序(在我的docker)实际上并没有运行。 当我docker inspect <container_id>正在运行的容器docker inspect <container_id> ,看到"Cmd": null 。 如果我检查由beanstalk创build的ECS任务定义,我也看到"command": null" / 但是 ,如果我手动运行容器(通过docker run -d myimage:latest ),我看到"Cmd": ["node", "server.js"]和应用程序正确服务。 这是我的Dockerfile中包含的正确的CMD 。 我的ECS任务定义如何正确读取我的泊坞窗图像中的CMD ? 我想添加一个命令到我的Dockerrun.aws.json ? 我找不到任何文件。 Dockerrun.aws.json : { "AWSEBDockerrunVersion": 2, "volumes": [ { "name": "node-app", "host": { "sourcePath": "/var/app/current/node-app" } } ], "containerDefinitions": [ { "name": "node-app", "image": "1234565.dkr.ecr.us-east-1.amazonaws.com/my-node-app:testing", "essential": true, […]

具有单个容器泊坞窗的AWS Elastic Beanstalk:在Dockerfile.aws.json中logging参数

我很难理解日志logging选项如何在Dockerfile AWSconfiguration中工作。 根据文件,我希望/以为Dockerfile.aws.json下面: { "AWSEBDockerrunVersion": "1", "Ports": [ { "ContainerPort": "1234" } ], "Logging": "/var/log/applogs" } 我会将容器中/var/log/appslogs中logging的所有内容都放到EC2实例的/var/log/eb-docker/containers/eb-current-app/文件夹中。 但这种情况并非如此。 我究竟做错了什么 ?

对于Web应用程序,为模板和api服务器分配两个容器是否有意义?

一个聪明但没有经验的程序员以如下方式向我们的服务介绍了dev-ops: 运行包含前端构build的html模板的服务器通过Docker容器部署到ECS,然后部署到启用了负载平衡的Elastic Beanstalk。 前端构build依赖的api服务器也通过启用了负载平衡的Docker + Elastic Beanstalk部署到ECS。 扮演将SSL和代理应用于模板服务器和api服务器的angular色的ec2实例(nginx +)。 这是入口点,但负载平衡器未连接。 我批准了分离前端和api环境的举措,这允许我们的开发人员在不影响另一个的情况下提交一个代码。 然而,AWS的这种安排,即使在技术上是function性的,似乎也是有缺陷的。 我听说Application Load Balancer可以兼顾SSL和代理服务器,但是我不知道如何在我们的服务涉及两个单独的容器的情况下应用它。 我的问题是: 使用Docker,ECS,Elastic Beanstalk和Application Load Balancer部署前端和api服务器的最痛苦的方式是什么? 是否还有其他CI /自动化工具可以推荐您尽可能无忧无虑地进行部署? 谢谢!

在AWS Elastic Beanstalk上使用Docker进行部署时的私有环境variables

我无法find一个明显的问题的简单解决scheme – 通过代码pipe道部署在Elastic Beanstalk上的Docker应用程序如何获取需要私有的环境variables(API键,数据库连接string等)? 谷歌/ SO导致了我一些复杂的变通办法,涉及奇怪的bash脚本等。 对于在AWS上部署应用程序本来应该是最简单的方法,是否没有简单的,由Amazon支持的方式来实现?

使用Spinnaker从dockerhub部署Docker镜像到Aws Eb

Spinnaker / Docker非常新。 我们正在尝试使用Spinnaker来简单地检索已推送到hub.docker.com的Docker映像,并将其部署到AWS Elastic Beanstalk中的应用程序。 我们的三angular帆服务器运行在EC2的虚拟机上。 我们希望使用大三angular帆,因为它支持带批准链的负载均衡部署等。 围绕这个主题的唯一参考文章涉及Kubernetes,这是我不熟悉的另一个平台。 我很困惑,因为从逻辑上讲,从dockerhub中提取Docker镜像并将其部署到Aws应该是这种基本的部署forms之一。 任何帮助,将不胜感激。

Elastic Beanstalk Docker容器运行Node应用程序提前退出

我有一个Docker的ElasticBeanstalk环境,用于部署运行restify的节点应用程序。 当我们部署新版本的应用程序时,我们发现错误是间歇性的: Command failed on instance. Return code: 1 Output: nginx: [emerg] no host in upstream ":8080" 查看日志时,我们看到容器退出exit 0意味着应用程序正在返回它已成功退出。 Dockerfile: FROM node:alpine RUN mkdir -p /usr/src/app WORKDIR /usr/src/app COPY .npmrc .npmrc COPY package.json /usr/src/app/ RUN npm install RUN rm -f .npmrc COPY . /usr/src/app EXPOSE 8080 CMD ["npm", "start"]

AWS Elastic Beanstalk使用简单的SpringBoot Eureka映像失败部署Docker

我是AWS和Elastic Beanstalk的新手。 我试图用一个简单的Spring Boot Docker来testing一个多容器的Docker部署https://hub.docker.com/r/springcloud/eureka/只是为了看看现在可以使用的东西。 我正在上传一个非常简单的Dockerrun.aws.json文件到Beanstalk控制台: { "AWSEBDockerrunVersion": 2, "containerDefinitions": [ { "name": "eureka1", "image": "springcloud/eureka", "essential": true, "memory": 128, "portMappings": [ { "hostPort": 80, "containerPort": 8761 } ] } ] } springcloud / eureka Docker镜像默认启动端口8761上的服务器,并将主机端口80映射到容器的端口8761。 所以打开应用程序的url(类似http://sample-env-1.xxx.eu-central-1.elasticbeanstalk.com/ ),它应该显示尤里卡服务器接口…它不。 它只是说“无法连接”标准的浏览器页面。 日志不会显示错误…或者至less我看不到任何明显的错误。

失败(404错误)通过AWS EBS泊坞窗环境中的Nginx访问Amazon Linux API泊坞窗服务

我已经使用Ubuntu平台和NGINX创build了具有多容器Dockers的AWS Elastic Beanstalk(EBS)环境。 我已经将NGINX安装在一个单独的docker容器中,并将来自NGINX的API调用转发给其他API泊坞窗。 使用Amazon Linux OS创build的API泊坞窗。 分配给NGINX的80端口和其他API在不同的端口映射到NGINX(nginx.conf)。 使用单个任务定义将所有Docker部署到Elastic Beanstalk环境中。 NGINX成功在EC2实例中成功运行,并正常工作在80端口。 我还部署了一个API Docker容器并将其映射到NGINX中。 通过NGINX访问API时出现“404未find”错误。 请检查下面的NGINXconfiguration文件,并帮助我解决问题。 NGINX Conf: upstream save_user_video-api_hosts { server dev-save-user-video:6666; } upstream user_complaints-api_hosts { server dev-user-complaints:7777; } server { listen 80; server_name xxx.yyyy.me; location /save-user-video { proxy_pass http://save_user_video-api_hosts; } location /user-complaints { proxy_pass http://user_complaints-api_hosts; } } }

Elastic Beanstalk MultiContainer Docker环境variables

我有一些docker图像存储在ECR中,我试图将它们部署到ElasticBeanstalk。 他们被部署得很好,但是他们没有从主机上获取任何环境variables。 如果我只部署默认的多容器泊坞窗安装程序,那么容器会拿起环境variables(用eb setenv设置)。 即使试图在本地运行,他们也不会拿起环境variables。 有没有其他人经历过这个,find了解决办法?

用boto3创buildElastic Beanstalk Docker环境

我们正在使用boto3dynamic创build弹性beanstalk环境。 我们正在使用与Container beanconfiguration模板一起工作的Single Container Docker Application。 不幸的是,当创build环境时,source_bundle文件没有提取我们的源代码,而Elastic Beanstalk把它称为​​Dockerfile / var / app / current,我通过下载Dockerfile证实了这一点,并能够从中提取我们的源代码。 这很奇怪,也不知道为什么Beanstalk会将我们的源代码包转换为Dockerfile。 我的猜测是boto3与应用程序版本和创build环境的awsebcli不同。 在另一个Beanstalk应用程序中,我们有完全相同的在线应用程序,唯一的区别是它是使用awsebcli而不是boto3创build的 这是我们用来在boto3中创buildElastic Beanstalk应用程序版本的语法 import boto3 client = boto3.client('elasticbeanstalk') source_code = f'archives/xxxxx/xxxxxx.zip' client.create_application_version( ApplicationName=application_name, VersionLabel=commit, Description="foobar", SourceBundle={ 'S3Bucket': 'xxxxxx', 'S3Key': source_code }, AutoCreateApplication=False, Process=True ) 这就是我们如何使用boto3创build一个beanstalk环境 import boto3 client = boto3.client('elasticbeanstalk') response = client.create_environment( ApplicationName=application_name, EnvironmentName=name, Description='foobar', Tags=TAGS, VersionLabel=commit, TemplateName='api', […]