请建议我如何定义一个环境变量,并在其他环境变量中相对引用它。我了解ARG & ENV
中有一种docker-compose
方法。但是,如何使用docker run
实现它。还是我必须在每个env变量中明确声明它?我尝试了谷歌搜索,但没有运气。所有方法都指向dockerfile。
示例:
cloud_user@vijaygharge1c:~/Downloads$ docker run -itd --rm -e ELK_VERSION=7.8.0 -e ES_VERSION="${ELK_VERSION}" --name "test" phusion/baseimage:18.04-1.0.0
2cd77b32f1b4336b18d7b5e0b342c37a2110832264d545d02668fe2b365ae2ae
cloud_user@vijaygharge1c:~/Downloads$ docker exec test env | grep VERSION
ELK_VERSION=7.8.0
ES_VERSION=
cloud_user@vijaygharge1c:~/Downloads$
cloud_user@vijaygharge1c:~/Downloads$ docker -v
Docker version 19.03.12, build 48a66213fe
cloud_user@vijaygharge1c:~/Downloads$
答案 0 :(得分:1)
如果先前未定义ES_VERSION,则您尝试执行的操作不可能。
如果您先前定义,则有可能:
export ELK_VERSION=7.8.0
docker run -itd --rm -e ELK_VERSION=${ELK_VERSION} -e ES_VERSION="${ELK_VERSION}" --name "test" phusion/baseimage:18.04-1.0.0
另一种可能性是在.env中为您的docker-compose.yml定义ELK_VERSION。