【问题标题】:Where to put ebextensions config in AWS Elastic Beanstalk Docker deploy with dockerrun source bundle?使用 dockerrun 源包在 AWS Elastic Beanstalk Docker 部署中放置 ebextensions 配置的位置?
【发布时间】:2015-09-04 14:01:28
【问题描述】:

我无法让我的 docker elastic beanstalk deploy 读取我的 .ebextensions/setup.config 文件。

eb environment configuration 的文档说:

您可以在源包中包含一个或多个配置文件。配置文件必须以扩展名 .config 命名(例如 myapp.config),并放置在源包中的 .ebextensions 顶级目录中。

但是,对于 Docker,源包看起来不是.zip.war 文件,而是.json 文件,例如,文档对create a Dockerrun.aws.json file 说——看起来这就是源捆绑?

在创建应用程序版本时,我将自定义 Dockerrun-$VERSION.aws.json 文件上传到 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”只是一个最终构建容器的 json 文件时,如何在源包的顶级目录中找到 .ebextensions 目录? (我的第一次尝试是把它放在项目的根目录下,但是没有用。)

【问题讨论】:

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


    【解决方案1】:

    如果您使用 .json 文件进行 docker 部署,则不能使用 .ebextensions。

    但是,您可以创建一个包含 .json 和 .ebextension 目录的 zip,一切都应该正常工作。使用 zip 作为您的部署工件,而不是原始 json。

    【讨论】:

    • 酷,工作正常,我最终指向一个 zip 作为我的源包,它只包含一个 Dockerrun.aws.json 文件和 .ebextensions 目录以及我想要的任何配置文件。
    • 我无法将带有密钥的 config.json 放到服务器上,而无需将其添加到 git。我是否认为它明确避免了这些并且我必须将其拉上拉链?
    • @MarkLester 我认为您使用的是 cli。您可以将其全部压缩,也可以添加一个 .ebignore 文件并忽略您不想部署的所有内容。 Ebignore 覆盖 gitignore,因此您不必提交任何东西
    • @NickHumrich 谢谢,是的,我正在使用 eb deploy。如果我必须压缩,我会压缩,但我应该把它放在哪里?但我想要的是 ebinclude,而不是忽略,我只是希望它继续将 config.json 复制到服务器 api 看不到的地方,而不是粘在 github 上。
    • 似乎不起作用。 eb-activity.log 说它从 /opt/elasticbeanstalk/deploy/appsource/source_bundle 解压缩了一个 .zip,但抱怨 Dockerfile 和 Dockerrun.aws.json 都丢失了。我的 buildspec post_build 有 zip 命令,并将其列为工件
    猜你喜欢
    • 2020-09-08
    • 2013-06-14
    • 2020-08-27
    • 2015-01-24
    • 1970-01-01
    • 2019-09-24
    • 2021-02-01
    • 2016-08-10
    • 2013-04-22
    相关资源
    最近更新 更多