具有指向文件的Docker Volumes的弹性beanstalk

时间:2015-03-03 17:50:36

标签: amazon-web-services docker elastic-beanstalk

我有一个Tomcat docker容器,想要使用Elasticbeanstalk在其上部署我的webapp。

使用普通的docker我不会将我的war文件添加到容器中,而是通过-v标志引用它,如:

docker run --rm -v data/myfile.war:/usr/local/tomcat/webapps/myFile.war

这允许我直接引用我的war文件。我已将我的图像推送到我的docker-hub repo。 在我的Dockerrun.aws.json中,我想做war文件的ref。我知道可以选择执行以下操作:

  "Volumes": [
{
  "HostDirectory": "/data",
  "ContainerDirectory": "/data"
}]

但是这让我有一个问题,我的war文件在Host目录中的哪个位置?! 我的工作流程是打包这些文件:

  • Dockerrun.aws.json
  • 战争文件

并将它们上传到aws。但我不知道在ec2实例上提取zip文件的位置。因此我不知道我应该如何引用卷。 基本上我想做这样的事情:

  "Volumes": [
    {
      "HostDirectory": "?/myFile.war",
      "ContainerDirectory": "/usr/local/tomcat/webapps/ROOT.war"
    }]

?基本上是我不知道的部分

我正在使用网络用户界面。我可以上传包含Dockerrun.aws.json和war文件的zip文件。但是我在Dockerrun.aws.json中的Volumes部分中声明了什么 我不知道aws在哪里提取我的war文件我想做类似的事情:

我在aws文档中找不到任何内容。有人有想法吗?

2 个答案:

答案 0 :(得分:2)

也许它会帮助你http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/customize-containers-ec2.html#customize-containers-format-files

files:
  "/data/myfile" :
    mode: "000755"
    owner: root
    group: root
    source: http://foo.bar/myfile

&安培;

"Volumes": [
    {
      "HostDirectory": "/data/myfile",
      "ContainerDirectory": "/data/myfile"
    }]

答案 1 :(得分:1)

您的文件应位于/var/app/current/。您可以ssh到实例进行验证。