Tag: 亚马逊 ECS

Codeship:从Docker镜像部署到EC2容器服务

我有一个使用Codeship Pro的项目,并且我已经成功推送到Docker Hub,之后我想用我的项目推到AWS EC2 Container Service。 我遵循这个文档: https://documentation.codeship.com/pro/continuous-deployment/aws/ – service: awsdeployment command: aws ecs register-task-definition –cli-input-json file:///deploy/tasks/backend.json – service: awsdeployment command: aws ecs update-service –service my-backend-service –task-definition backend 问题是在文档中,它不解释什么部署/任务/ backend.json包含,我试图删除codeship-steps.yml – service: awsdeployment command: aws ecs update-service –service my-backend-service –task-definition backend 但结果是:调用UpdateService操作时发生错误(ClientException):未findTaskDefinition。 目前,我使用 ecs-cli compose up 它使用我的docker-compose.yml将我的项目推送到我的EC2容器服务 我花了漫长的一天来弄明白,但是我仍然不知道要成功推送到我的AWS ECS,在推送shipcode时我不能使用ecs-cli命令。 我该怎么办 ?

无法使用AWS Java API读取图像的LABEL键和特定图像的值

我正在使用与元数据标签的docker图像。 我正在尝试使用AWS api来查找docker映像的标签,并将其推送到AWS ECS存储库中。 使用下面的API,我能够获得注入到任务定义中的图像名称和env值。 但不能读取图像的LABEL键和特定图像的值。 如何使用AWS或Docker API读取图像标签? 标签注入使用Dockerfile的LABEL com.mycompany.name = mycompany等。 com.amazonaws.services.ecs.AmazonECS com.amazonaws.services.ecs.model.DescribeServicesResult com.amazonaws.services.ecs.model.DescribeTaskDefinitionResult 请build议。 谢谢。

正确的方法来在AWS ECS的jenkins上运行gulp构build

我已经构build了一个Node.js应用程序,在前端使用React.js。 一切运行在Docker容器中,部署工作由Jenkins完成(将文件提交到git repo之后),然后推送到AWS ECR(registry),然后在ECS(弹性容器服务)上运行。 我有2个Dockerfiles,一个默认值: FROM node:6.10.1 ADD . /myprojecct WORKDIR /myproject RUN npm install && npm install sails -g RUN npm install -g nodemon CMD ["npm","run","nodemon"] 还有一个在Jenkins / ECS端使用的Dockerfile-ECS FROM node:4.5.0 RUN apt-get update -y && apt-get install supervisor python curl -y RUN echo -e "[general]\nstate_file = /var/awslogs/state/agent-state" > /tmp/awslogs.conf RUN mkdir -p /etc/cron.d/ […]

ECS:在任务中设置但在容器中不存在的环境variables

我有一个任务定义如下所示: > aws ecs describe-task-definition –task-definition ruby-on-rails-test { "taskDefinition": { "status": "ACTIVE", "networkMode": "bridge", "family": "ruby-on-rails-test", "placementConstraints": [], "requiresAttributes": [ { "name": "com.amazonaws.ecs.capability.ecr-auth" }, { "name": "com.amazonaws.ecs.capability.docker-remote-api.1.21" } ], "volumes": [ { "host": { "sourcePath": "/opt/cf/rails-app/public/" }, "name": "ruby-on-rails-public-volume" } ], "taskDefinitionArn": "arn:aws:ecs:us-east-1:accountId:task-definition/ruby-on-rails-test:5", "containerDefinitions": [ { "memoryReservation": 1024, "environment": [ { "name": "DATABASE_HOSTNAME", "value": "hostname" […]

无法安装awscli到docker虚拟机

我在使用Docker工具包运行VM的Docker运行在Windows 10上。我试图推送到AWS ECS。 我需要awscli来做到这一点。 我运行命令pip install awscli ,它似乎被成功安装。 但是,当我运行aws –version说aws无法find。 $ pip install awscli Requirement already satisfied: awscli in c:\users\matthew\appdata\roaming\python\python35\site-packages Requirement already satisfied: PyYAML<=3.12,>=3.10 in c:\users\matthew\appdata\local\programs\python\python35\lib\site-packages (from awscli) Requirement already satisfied: docutils>=0.10 in c:\users\matthew\appdata\local\programs\python\python35\lib\site-packages (from awscli) Requirement already satisfied: botocore==1.5.56 in c:\users\matthew\appdata\roaming\python\python35\site-packages (from awscli) Requirement already satisfied: colorama<=0.3.7,>=0.2.5 in c:\users\matthew\appdata\local\programs\python\python35\lib\site-packages (from awscli) Requirement already satisfied: […]

容器已经停止在ECS上的错误

我最近开始与亚马逊ECS。 我创build了一个非常基本的泊坞窗图像,具有以下细节: FROM centos:7 LABEL name="MRK" \ vendor="MRK" \ build-date="20170529" #Install required packages RUN yum -y update RUN yum -y install java RUN yum -y install ImageMagick #Copy server code to container image COPY my_server /opt/my_server #Run my_server/startup.sh on startup RUN /opt/my_server/startup.sh CMD ["/bin/bash"] 我把这个推到ECS为我创build的回购。 之后,我按照AWS ECS控制台上的入门步骤执行以下步骤: 通过AWS控制台创build一个具有一个容器实例的集群。 创build了一个任务定义,在容器下我提供了有关我的推送图像的信息。 为此任务定义创build一个服务,以最小计数1运行。 服务执行却抛出“ 必需的容器在任务退出 ”的错误。 我试图find控制台上的任何其他错误的细节,但无法find。 我滑到容器实例,我在docker日志中看到这个错误: […]

在AWS上的Docker中Spring引导logging系统出现内存泄漏?

我有一个在AWS中快速运行的Dockerised Spring Boot应用程序,并configuration了awslogs驱动程序,以将日志条目stream式传输到CloudWatch。 我的应用程序被configuration为login到系统,我假定awslogs驱动程序正在监听日志条目。 但是,如果我的服务是长期运行的日志(系统出)有效的内存泄漏? 如果是这样,我更好地login到旋转文件,并以某种方式configurationawslogs从这些文件中读取? (后一种情况的文档指针将不胜感激。)

CannotStartContainerError提交AWS批处理作业

在AWS Batch我有一个job definition ,一个job queue和一个执行我的AWS Batch jobs的compute environment 。 提交工作后,我发现它在失败的列表中有这个错误: Status reason Essential container in task exited Container message CannotStartContainerError: API error (404): oci runtime error: container_linux.go:247: starting container process caused "exec: \"/var/application/script.sh –file= –key=. 在cloudwatch logs我有: container_linux.go:247: starting container process caused "exec: \"/var/application/script.sh –file=Toulouse.json –key=out\": stat /var/application/script.sh –file=Toulouse.json –key=out: no such file or directory" […]

除HTTP以外的ECS服务保持重新启动

我通过AWS ECS安装了Nginx ECS Docker容器服务,该服务正在运行,没有任何问题。 但是,通过AWS ECS安装的其他所有容器服务(如centos,ubuntu,mongodb或postgres)在循环中不断重新启动(取消注册,重新注册或挂起状态)。 有没有办法在AMI Optimized Linux上使用AWS ECS安装这些容器服务而没有任何问题? 另外,有没有办法在AWS ECS中注册Docker容器,这些容器是从Docker Hub手动提取和运行的?

AWS ECS奇怪的docker行为

我对亚马逊的EC2服务相当陌生,对于我从中得到的奇怪行为感到茫然。 我有一个Docker镜像,在本地运行时运行得非常完美。 我已经将其上传到存储库,并将其定义为在EC2中运行集群/服务/任务定义。 当我试图蜷缩到我正在运行的服务时,我被告知连接被拒绝(因为我假设端口未被正确打开或映射)。 如果我使用ssh进入Amazon EC2并使用-p 1200:1200标志手动启动映像,它将再次运行而不会出现问题,并且可以无错地curl。 除此之外,当我尝试从amazon自动部署的映像中检索日志时,它们是空的。 在EC2上本地或手动运行时,日志存在且正确。 我的入站和出站规则不是我所知道的问题,而且我所知道的端口映射也是正确设置的。 我已经包含了所有描述的行为的屏幕截图,以及我的Dockerfile的副本。 停止亚马逊的运行图像,并用-p 1200:1200手动启动:(在这样做后,我的服务响应curl) 这样做的日志: 运行图像的EC2空日志: 入境规则: 出站规则: 端口映射: Dockerfile: FROM thedarbear/facerec EXPOSE 1200 RUN mkdir -p /facerec WORKDIR /facerec COPY . /facerec RUN cd /facerec CMD python3 -u server.py 当地检查: https://pastebin.com/7Y48ukqa ec2检查: https://pastebin.com/EdJRSEpi 任何洞察到为什么发生这将不胜感激!