Tag: amazon web services

Docker镜像构build为AWS CodePipeline步骤

我能够设置github和AWS CodePipeline之间的集成,所以现在我的代码通过lambda函数的推送事件后上传到S3。 这工作得很好。 在S3上有一个新的源代码的ZIP触发一个pipe道,它build立的代码。 没关系。 现在我想为这个项目build立一个docker镜像。 第一个问题是你不能混合项目(nodejs)构build和docker构build。 这很好,很有意义。 下一个问题是你不能有docker版本的另一个buildspec.yml。 您已经手动指定了构build命令,可以,这是一个解决方法。 但是,最大的问题或缺乏我的理解,是如何把dockerbuild设作为pipe道的一部分? 首先构build项目,下一步构buildDocker镜像。 两个独立的AWS CodeBuild。 事情是,pipe道构build步骤必须在输出上产生工件。 但是docker build不会产生任何文件,并且看起来docker build之后的最后的docker push是没有被pipe道服务限定为工件的。 有没有办法如何做到这一点? 谢谢

如何将文件从主机装载到ECS上的Docker容器

我想从我的主机-EC2挂载一个文件到一个在ECS服务器上运行的容器。 在主机上的文件上发生的每一个变化都应该在容器中的文件上更新。 我试过的是如下: Dockerfile: FROM nginx COPY conf/default.conf /etc/nginx/conf.d/default.conf volume /etc/nginx/conf.d RUN ln -sf conf/default.conf /etc/nginx/conf.d/ EXPOSE 80 然后在ECR Repo上推送图像并创build任务,添加卷(源path:conf),挂载点(/etc/nginx/conf.d),并创build服务来运行容器。 然而,我在主机服务器上做的每一个改变,dir:/conf/default.conf都不能在容器/etc/nginx/conf.d/default.conf 我知道docker运行-v,但是当我使用ECR时,它通过设置运行容器本身。 任何build议,将不胜感激。

在AWS EC2实例上部署Docker容器而不login

我是一个微服务初学者,已经花了几个小时在AWS的最微小的痛苦的东西,将不胜感激任何专家的意见,因为我怀疑下一步是非常小的,但可能需要几个小时,否则工作。 所以我部署了一个nano实例,然后ssh到它。 不得不实际重做它来修复安全组,但无论如何它最终会奏效。 使用scp把我的docker图像放在那里,按照这里的说明,在docker save汇总里docker save一个.tar的图像在本地, docker load后放到系统上,等待15分钟后scp上传。 然后在命令提示符下inputdocker run。 在过去的三天里,已经采取了这些(linux)terminal措施,曾经两次尝试过,并且无法从AWS控制台执行,就像上传的那样,但是不会运行。 现在,当我inputdocker run my_image时,它运行得非常奇妙,我可以在这里看到docker run my_image和docker run my_image docker ps -a命令。 但是,我的AWS实例上的命令提示符正在运行,如果我closuresterminal窗口,它肯定会死亡。 现在我知道它在那里工作,我怎么能“部署”它,即让它运行并继续运行一个月或直到另行通知? 我认为它可能需要某种称为“任务定义”的json文件,但是根本不知道下一步该做什么。 这个任务定义和所有剩下的任务可以在login到实例的terminal中完成吗?

在AWS Elastic Beanstalk中使用Docker有什么优势?

我在AWS Elastic Beanstalk上部署了几个网站,然后我听说Docker,所以我想我可以尝试一下这个小企业电子商务网站(Lumen + Angularjs)。 我在互联网上search了所有的东西,但是由于没有使用Docker的经验,所以很难理解在AWS上使用Docker的好处。 我能find的是这样的一些描述: 优点 依赖关系和服务器硬件的分离pipe理 开发环境与生产环境相同(内部) 依赖pipe理意味着不是每个人都需要关于技术堆栈的每个部分的深入了解 使用AWS开发工具包或第三方工具轻松进行定制任务和服务调度 充分利用可用资源与ECS将任务分配给具有足够可用资源的EC2在任务需要更多资源时使用自动扩展function 缺点 Build会产生一个需要上传的大文件 Docker NAT可以增加networking延迟(使用docker run -net = host,更多的docker性能信息请看这里) 有些开发人员在提到docker这个词时已经适用 有些应用程序需要修复才能在Docker上工作 有人能给我一些简单的例子或解释吗?

AWS ECS是否支持每个容器的dynamic可伸缩性?

Amazon的EC2容器服务允许您运行任意数量的容器,它将select一个EC2实例自动运行容器。 哪些是很棒的function 但是,我们真的关心自动可伸缩性 。 场景: 我通过AWS ECS控制台启动容器。 HTTP请求正在开始。 HTTP负载随着时间显着增加。 容器的CPU(或RAM)使用率正在接近100%。 问题1:ECS会自动运行一个容器吗? 问题2:当CPU(或RAM)负载变低时,ECS会自动closures其中一个容器吗?

如何在ECS上使用参数运行nginx反向代理容器

我在这里有一个稍微修改的容器版本: http://jasonwilder.com/blog/2014/03/25/automated-nginx-reverse-proxy-for-docker/ 要在本地运行,请使用: $ docker run -d -p 80:80 -v /var/run/docker.sock:/tmp/docker.sock -t jwilder/nginx-proxy 并运行我的其他容器类似于下面: $ docker run -e VIRTUAL_HOST=my-domain.local -t -d my-repo/site-name 我无法将其转换为ECS上的任务定义。 任务定义 我有两个容器: nginx的-反向代理 端口映射:主机80容器80 基本的:是的 命令:/app/docker-entrypoint.sh 静态网站 端口映射:主机5000容器5000 必要:错误 命令:/some-file.sh 环境variables:VIRTUAL_HOST static.example.com 我有一个ECS实例和一个服务器的集群,上面定义了一个任务。 这会保持循环,并以“已停止(必需的任务退出的容器)”失败。 现在我假设我需要设置卷,但所有的例子,我可以find一个path和一个名字,我不明白我可以如何转换这个“/var/run/docker.sock:/tmp/docker.sock”到任何可用的字段。

Docker容器中的'aws configure'不会使用环境variables或configuration文件

所以我有一个Docker容器在AWS上运行jenkins和一个EC2registry。 我想让jenkins把容器推回EC2registry。 要做到这一点,我希望能够自动化aws configure并get login容器启动get login步骤。 我觉得我可以做到 export AWS_ACCESS_KEY_ID=* export AWS_SECRET_ACCESS_KEY=* export AWS_DEFAULT_REGION=us-east-1 export AWS_DEFAULT_OUTPUT=json 我期望导致aws configure自动完成,但是这不起作用。 然后,我尝试按照AWS文档创buildconfiguration,然后重复这个过程,这也是行不通的。 然后我尝试使用aws configure set也没有运气。 我在这里疯狂,我做错了什么?

在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 # […]