Tag: 亚马逊

Elastic BeanStalk Docker应用程序,编写本地文件

我有一个play scala应用程序,我通过AWS Elasticbeanstalk控制台将其作为通用Docker应用程序进行部署。 当我在本地运行应用程序时,我没有看到任何问题,所以我认为代码是正确的。 我需要有能力 将文件写入本地磁盘 在这些文件上运行一些命令行工具(如ffmpeg) 但是,我的应用程序不写入本地磁盘,也不让我执行命令行实用程序。 val localFile = new File(s"$localFilePath/$siteId/download/${fileName}.raw") s3Client.getObject(new GetObjectRequest(bucketName, summary.getKey), localFile) val cmd = s"ffmpeg -i ${localFile.getAbsolutePath} -vcodec copy ${localFile.getAbsolutePath}.mp4" cmd !; 这是我的Dockerrun.aws.json文件 {"AWSEBDockerrunVersion": "1","Logging": "/opt/docker/logs"} 更新更新我的Dockerrun.aws.json文件以包含卷映射 {"AWSEBDockerrunVersion": "1","Logging": "/opt/docker/logs","Volumes":[{"HostDirectory": "/tmp/files","ContainerDirectory": "/tmp/files"}]} 该应用程序正在编写本地文件,但由于某种原因无法运行ffmpeg。 Exception : Cannot run program "ffmpeg": error=2, No such file or directory

使用AWS tomcat和RDS进行会话复制

我在会话复制中遇到问题。 我在AWS和RDS MYSQL中使用了tomcat实例。 我们有一个在RDS中存储cookie会话的计划,而不是集群tomcat实例。 我在两个不同的区域有两个tomcat实例,tomcat实例有一个docker容器,它是应用程序容器(每个容器中有一个容器)。 当用户login到容器时,我可以看到会话存储在数据库中,但是我正在制作一个docker容器,用户应该使用RDS MySQL中提供的cookielogin。 但是当我停下一个docker容器(用户login的地方)时,第二个tomcat实例应该使用来自MySQL的cookie,并且用户应该没有任何问题的login。 但是,当我停止docker集装箱时,用户始终退出。

AWS ECS容器日志devise模式

我有一个经典的Scala应用程序,它会在该位置生成三个不同的日志 /var/log/myapp/log1/mylog.log /var/log/myapp/log2/another.log /var/log/myapp/log3/anotherone.log 我集装箱的应用程序,工作正常,我可以通过docker卷装载这些日志。 现在,应用程序/容器将部署在具有自动缩放组的AWS ECS中。 在这种情况下,多个容器可以运行在一个单独的主机上。 我想用云监视来监视我的应用程序日志。 一个解决scheme可以把aws日志代理放在我的应用程序容器中。 有没有更好的方法可以将这些应用程序日志从容器获取到cloudwatch日志中。 非常感谢帮助。

Docker容器中的Yesod应用程序无法发出networking请求

我有一个Yesod应用程序,我将其部署到Docker容器中的Heroku。 该应用程序使用Amazon SES发送电子邮件。 当使用yesod devel在本地运行应用程序,这工作正常,但在Heroku的容器上,我得到以下错误: HttpExceptionRequest Request { host = "email.eu-west-1.amazonaws.com" port = 443 secure = True requestHeaders = [("Content-Type","application/x-www-form- urlencoded"),("Date","Wed, 20 Sep 2017 12:39:49 +0000"),("X-Amzn- Authorization","AWS3-HTTPS AWSAccessKeyId=AKIAIBUN4ZEOKYKOB35A, Algorithm=HmacSHA256, Signature=xh3fi4EJOAe0LOZVCng5NRZIw2D+6P++0aO4Q5Dy0gw=")] path = "/" queryString = "" method = "POST" proxy = Nothing rawBody = False redirectCount = 10 responseTimeout = ResponseTimeoutDefault requestVersion = HTTP/1.1 } […]

在新的EC2 Jenkins Slave上首次执行Docker不起作用

我在Jenkins中使用EC2 Plugin在需要的时候启动slave实例。 最近我想和Docker一起玩,所以我把它安装在我们用作奴隶的AMI上,但是在奴隶上第一次运行似乎并不奏效。 + docker ps time="2015-04-17T15:38:20Z" level="fatal" msg="Get http:///var/run/docker.sock/v1.16/containers/json: dial unix /var/run/docker.sock: no such file or directory. Are you trying to connect to a TLS-enabled daemon without TLS?" 任何运行后,似乎工作 – 为什么奴隶不工作的第一份工作? 我试过使用sudo,在docker build之前执行docker ps ,但是没有任何东西可以解决这个问题。

当从磁盘装入数据卷时,使用docker无法正确显示声纳qualityprofile页面。

我正在build立一个Sonarqube服务器,并且想使用正式的dockerised版本,但是当我将数据文件夹挂载为卷以保持重启之间的状态时,QualityProfiles页面无法显示configuration文件。 configuration文件存储虽然,我可以在“比较configuration文件”下拉列表中看到它们,并在重新启动时保留。 我试过Safari和Chrome,行为是一致的。 日志中没有错误,就我所知,没有任何权限问题,因为正在写入数据。 没有安装数据卷它工作正常,但状态不坚持重新启动,这是一个交易断路器.. 还有谁解决了这个问题呢? 这是我的docker-composeconfiguration sonarqube: image: sonarqube:5.1 links: – db:postgres ports: – "9000:9000" – "9092:9092" – "5432:5432" environment: – SONARQUBE_JDBC_URL=jdbc:postgresql://postgres:5432/sonar – SONARQUBE_JDBC_PASSWORD=sonar – SONARQUBE_JDBC_USERNAME=sonar volumes: – /data/sonar:/opt/sonarqube/data privileged: true db: image: postgres environment: – POSTGRES_PASSWORD=sonar – POSTGRES_USER=sonar volumes: – /data/postgres:/var/lib/postgresql/data privileged: true 和docker版本 [ec2-user @ xxxxxxxxx声纳] $ docker版本 客户端版本:1.6.2 客户端API版本:1.18 转到版本(客户端):go1.3.3 Git的提交(客户端):7c8fca2 […]

将Docker部署到AWS Elastic Beanstalk – 如何将端口转发到主机? (端口绑定)

我有一个使用CircleCI设置的项目,用于自动部署到Elastic Beanstalk 。 我的EBS环境是一个容器,自动缩放,networking环境。 我试图运行一个服务,监听原始套接字端口8080。 我的Dockerfile: FROM golang:1.4.2 … EXPOSE 8080 我的Dockerrun.aws.json.template: { "AWSEBDockerrunVersion": "1", "Authentication": { "Bucket": "<bucket>", "Key": "<key>" }, "Image": { "Name": "project/hello:<TAG>", "Update": "true" }, "Ports": [ { "ContainerPort": "8080" } ] } 我已经确保在分配给我的项目环境的“angular色”上公开端口8080。 我使用了上面链接的CircleCI教程中的确切部署脚本(除了更改后的名称)。 在运行我的EBS应用程序的EC2实例中,我可以看到Docker容器已经成功运行,只是Docker没有将公开的端口转发到主机容器。 当我运行docker run ….没有-P标志的时候,我遇到了这个问题。 以下是SSH进入计算机后的示例会话: [ec2-user@ip-xxx-xx-xx-xx ~]$ sudo docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS […]

在Dockerfile FROM参数中使用–build-arg值

我目前使用AWS ECR托pipe我的项目图像,我需要参数FROM在Dockerfile中是根据命令行发送的–build-argdynamic的。 例: $ docker build –build-args region=us-east-1 . // Dockerfile FROM aws.ecr.huge.url.${region}/repo:php-apache WORKDIR /var/www RUN echo "@@@" $ {region}永远不会被replace,我得到一个错误,说图像不存在。 如果我运行echo $ {region}它有效,问题似乎与FROM指令。 有什么办法可以实现吗?

Amazon EFS和Docker – 创build映像时出错

我想用amazon的弹性文件系统(EFS)来使用docker。 所以我在EC2机器上挂载了EFS,并在dockerconfiguration文件中设置了一个efs-folder作为docker根文件夹。 但是当我想创build一个图像,我得到这个错误: Step 1 : FROM ubuntu:14.04 14.04: Pulling from library/ubuntu 862a3e9af0ae: Extracting [==================================================>] 65.7 MB/65.7 MB 6498e51874bf: Download complete 159ebdd1959b: Download complete 0fdbedd3771a: Download complete 7a1f7116d1e3: Download complete failed to register layer: Error processing tar file(exit status 1): errno 524 在docker日志中,我得到这个错误: Error trying v2 registry: failed to register layer: Error processing tar file(exit […]

Docker或Docker for AWS和AWS EC2上的部署

2个问题在这里。 我试图找出什么是普通的Docker和Docker for AWS之间的主要区别。 对于我的项目,我将运行在Angular 2中编码的GUI,打包在AWS EC2上的Docker容器中。 1)我应该使用Docker for AWS来达到我的目的吗? 2)是否有可能,Docker可以[1]从Github存储库获取我的代码,[2]在运行docker时构build它? 3)什么是在AWS上部署Docker容器的最佳方式? 有没有遵循的指南或一些最佳实践的例子? 先谢谢你!