gpt4 book ai didi

linux - 在docker run中导出变量列表

转载 作者:行者123 更新时间:2023-12-02 19:15:27 24 4
gpt4 key购买 nike

我们在环境文件中有一组变量,如下所示
examples.env

A="/path1"
B="/path2":$A
现在,由于其局限性,docker run无法用$ B代替 /path/path1
因此,我想在启动脚本中导出变量,然后使用-e标志调用这些变量,如下所示
mydocker.sh
input="examples.env"
while IFS= read -r line
do
export $line
done < "$input"

docker run --rm -e <Some code> centos8
现在如何创建docker命令来获取所有变量?
以下docker命令有效 docker run --rm -e A -e B centos8但是,如果exam​​ples.env文件中的变量数量未知,那么我们如何生成docker run命令?

最佳答案

在由mydocker.sh插入的export脚本中获取变量文件,并使用--env连接每个变量,并在处将串联字符串转换为变量,以便对变量进行解释。
这是一个例子:

# Source the variables file so they will be available in current script.
. ./examples.env
# Define docker env string it will lokk like below:.
# --env A=/path1 --env B=/path1/path2
dockerenv=""
input="examples.env"
while IFS= read -r line
do
dockerenv="${dockerenv} --env $line"
done < "$input"
# Evaluate the env string so the variables in it will be interpreted
dockerenv=$(eval echo $dockerenv)

docker run --rm $dockerenv centos8
附言
您需要使用 --env插入的 -e,因为 -e将被解释为 echo命令参数。

关于linux - 在docker run中导出变量列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63731260/

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