具有 Docker 个指向文件的卷的 Elastic beanstalk

Elastic beanstalk with Docker Volumes pointing to files

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

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

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

这让我可以直接引用我的 war 文件。我已将图像推送到我的 docker-hub 存储库。 在我的 Dockerrun.aws.json 中,我想对 war 文件进行引用。我知道可以选择执行以下操作:

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

但这给我留下了一个问题,我的 war 文件在主机目录中的什么位置?! 我的工作流程是打包这些文件:

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

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

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

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

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

也许对你有帮助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"
    }]

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