Elastic Beanstalk和Dockerfile ARG指令

我需要将一些parameter passing给我的docker build命令。 我知道这可以在Dockerfile使用ARG指令Dockerfile 。 现在假设我在Dockerfile有以下Dockerfile

 ARG myvar 

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

但是,我正在使用AWS Elastic BeanstalkDocker来构build映像并将其部署到容器中。 所以问题是,

  1. 这可能吗?
  2. 如果,是的,我如何确保AWS EB将这些parameter passing给值?

感谢Sushil

昨天我开始使用AWS EB,我很高兴,今天我需要通过一些ARG到我的构build,发现这在文档上

在这里输入图像说明

很伤心

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

解决方法

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

例如,让我们假设我需要一个var名字TOKEN在我的docker上

 RUN curl http://somemething.comtoken=$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