gpt4 book ai didi

docker - Elastic Beanstalk 和 Dockerfile ARG 指令

转载 作者:IT老高 更新时间:2023-10-28 21:22:49 29 4
gpt4 key购买 nike

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

ARG myvar

并使用命令 docker build --build-arg mvar=myOwnVar ...,这样就可以了。

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

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

谢谢寿司

最佳答案

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

enter image description here

很伤心

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

解决方法

一个可能的解决方案是我目前正在做的事情,在运行 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

关于docker - Elastic Beanstalk 和 Dockerfile ARG 指令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39698061/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com