gpt4 book ai didi

docker - 如何为Docker设置环境变量设置运行时变量

转载 作者:行者123 更新时间:2023-12-02 19:56:07 29 4
gpt4 key购买 nike

我正在创建一个需要一些环境变量的docker compose文件。 env var之一来自aws ssm参数。因此,当我构建docker镜像并将值作为环境变量之一时,我需要从aws ssm查询值。我该如何在docker compose文件中做到这一点?

version: "2.3"
services:
base:
build:
context: .
args:
- PYTHON_ENV=developmen
- API_KEY= # find the value from ssm

最佳答案

没有简单的方法可以从子shell处理docker-compose文件中的ARGs。但是您可以使用docker build命令和带有键值的docker-compose来执行此操作。

使用docker-compose命令:

MY_KEY=$(aws  ssm get-parameter --name "test" --output text --query Parameter.Value) docker-compose build --no-cache

docker 组成
version: "2.3"
services:
base:
build:
context: .
args:
- PYTHON_ENV=developmen
- API_KEY=${MY_KEY}

在Dockerfile中定义ARG,并在构建期间运行subshel​​l以获取SSM参数值。
FROM alpine
ARG API_KEY=default
ENV API_KEY="$API_KEY"
RUN echo "API_KEY is : $API_KEY"

在构建过程中,使用 aws-cli获取值
docker build --no-cache --build-arg API_KEY="$(aws  ssm get-parameter --name "test" --output text --query Parameter.Value)" -t myimage .

使用docker-compose,您还可以尝试使用系统环境变量。
version: "2.3"
services:
base:
build:
context: .
args:
- PYTHON_ENV=developmen
- API_KEY=${MY_KEY}

在docker-compose之前将其导出为ENV。
 export MY_KEY=$(aws  ssm get-parameter --name "test" --output text --query Parameter.Value) && docker-compose build --no-cache

关于docker - 如何为Docker设置环境变量设置运行时变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57880893/

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