Elastic Beanstalk 和 Dockerfile ARG 指令

2024-04-18

我需要将一些参数传递给我的docker build命令。我知道这可以使用ARG内的指令Dockerfile。现在假设我有以下内容Dockerfile.

ARG myvar

并使用命令docker build --build-arg mvar=myOwnVar ...,这会起作用。

但是,我正在使用AWS Elastic Beanstalk with Docker构建镜像并将其部署到容器中。所以问题是,

  1. 这有可能吗?
  2. 如果是,我如何确保 AWS EB 将值传递给这些参数?

谢谢 苏希尔


昨天我开始使用 AWS EB,我很高兴,今天我需要将一些 ARG 传递到我的构建中,在文档中找到了这个

Very sad

source: http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/command-options-specific.html http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/command-options-specific.html

解决方法

一个可能的解决方案是我目前正在做的,在运行 docker build 之前,将一些文件添加到 EB 并从 Dockerfile 使用它

例如,假设我需要一个 var 名称TOKEN在我的码头上类似

RUN curl http://somemething.com?token=$TOKEN

所以我所做的是

添加新的脚本文件

ADD ./curl-thing.sh /curl-thing.sh

和内容

if [ -f "./.env"]; then
  source ./.env
fi

现在添加一个文件名.ebextensions/my-env.config,名称并不重要,重要的是存在于 forlder .ebextensions 上并且具有扩展名 .config

files:
  "/opt/elasticbeanstalk/hooks/appdeploy/pre/02_mix_environment.sh":
    mode: "000755"
    owner: root
    group: root
    content: |
      #!/usr/bin/env bash
      EB_APP_DEPLOY_DIR=$(/opt/elasticbeanstalk/bin/get-config container -k app_deploy_dir)
      TOKEN=$(/opt/elasticbeanstalk/bin/get-config environment -k TOKEN)
      echo "export TOKEN=${TOKEN}" >> ${EB_APP_DEPLOY_DIR}/.env
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Elastic Beanstalk 和 Dockerfile ARG 指令 的相关文章

随机推荐