可以通过运行Docker容器时使用-d选项,来将环境变量传递给Bash脚本。可以在Dockerfile中设置ARG和ENV变量,并在docker run命令中使用-e选项来设置相同的变量。
例如,Dockerfile中设置一个ARG变量并在Bash脚本中使用:
# Dockerfile
ARG my_var=default_value
ENV my_env_var=default_value
# Bash script
#!/bin/bash
echo "The value of my_var is: ${my_var}"
然后使用docker run命令来设置相同的变量:
docker run -e my_var=my_value my_image
这将覆盖默认值并在Bash脚本中输出“my_value”。
另外,如果要将所有的ARG和ENV变量传递给Bash脚本,可以使用以下命令实现:
docker run --env-file <(env | grep -E "^(ARG|ENV)_" | sed 's/^\(...\)/\1 /') my_image
这将读取所有以“ARG_”或“ENV_”开头的环境变量,并将其传递给Docker容器,并使用Bash脚本中的“export”命令将它们设置为环境变量。