弹性Beanstalk和Dockerfile ARG指令

弹性Beanstalk和Dockerfile ARG指令,docker,amazon-elastic-beanstalk,Docker,Amazon Elastic Beanstalk,我需要将一些参数传递给我的docker build命令。我知道这可以使用Dockerfile中的ARG指令来完成。现在假设我的Dockerfile中有以下内容 ARG myvar 并使用命令docker build--build arg mvar=myOwnVar…,这将起作用 但是,我正在使用AWS Elastic Beanstalk和Docker构建映像并将其部署到容器中。所以问题是, 这可能吗 如果是,如何确保AWS EB将值传递给这些参数 谢谢 Sushil昨天我开始使用AWS EB,

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

ARG myvar
并使用命令
docker build--build arg mvar=myOwnVar…
,这将起作用

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

  • 这可能吗
  • 如果是,如何确保AWS EB将值传递给这些参数
  • 谢谢
    Sushil

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

    非常伤心

    资料来源:

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

    例如,假设我在docker上需要一个var name
    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
    

    哇,从16年开始,还没有答案,我也有同样的困境。我浪费了整整一天的时间在AWS开发者论坛上似乎有一个相关的帖子-。到今天为止,似乎还没有这样的功能。