我们在env文件中有一组变量,如下所示
examples.env
A="/path1"
B="/path2":$A现在,由于$B的局限性,docker不能替代/path/path1。
因此,我希望在launcher脚本中导出变量,然后使用-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,但是如果examples.env文件中的变量数未知,那么如何生成examples.env运行命令?
发布于 2020-09-07 10:08:06
将变量文件来源于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 insted of -e becouse -e将被解释为echo命令参数。
https://stackoverflow.com/questions/63731260
复制相似问题