使用不同的环境变量重新启动 docker
Restart docker with different environment variable
我有一个 docker-compose 有
myimage:
image: myimage:latest
environment:
MY_VAR: "something"
容器在内部使用 MY_VAR,有时在自动化测试中我想用不同的 MY_VAR 重新启动特定容器(以模拟使用不同环境变量设置的进程重新启动)
有没有办法做到这一点,同时保持 docker-compose 容器的其余部分正常运行?
你不能这样做,你必须重新创建一个容器,因为环境变量在 run
命令中给出(即使使用 docker-compose)。
如@robin.thoni 所说,需要重新创建容器以更改 MY_VAR
值,但您可以通过在撰写 YML 中使用环境变量来简化过程,如下所示:
myimage:
image: myimage:latest
environment:
- MY_VAR: ${A_ENV_VAR}
和运行这样的容器:
A_ENV_VAR=test docker-compose run myimage
我有一个 docker-compose 有
myimage:
image: myimage:latest
environment:
MY_VAR: "something"
容器在内部使用 MY_VAR,有时在自动化测试中我想用不同的 MY_VAR 重新启动特定容器(以模拟使用不同环境变量设置的进程重新启动)
有没有办法做到这一点,同时保持 docker-compose 容器的其余部分正常运行?
你不能这样做,你必须重新创建一个容器,因为环境变量在 run
命令中给出(即使使用 docker-compose)。
如@robin.thoni 所说,需要重新创建容器以更改 MY_VAR
值,但您可以通过在撰写 YML 中使用环境变量来简化过程,如下所示:
myimage: image: myimage:latest environment: - MY_VAR: ${A_ENV_VAR}
和运行这样的容器:
A_ENV_VAR=test docker-compose run myimage