gpt4 book ai didi

docker - 来自 docker-compose.yml 入口点中 env 文件的环境变量

转载 作者:行者123 更新时间:2023-12-02 18:06:38 26 4
gpt4 key购买 nike

我想在入口点的 docker-compose 中使用来自 env-file 的变量:

  # environment.env
HOST=example.com

# docker-compose.yml
some_service:
...
env_file: ['environment.env']
entrypoint: ['myexecutable', '--host', '$HOST']

有没有办法做到这一点?我只找到了一个解决方案:
  # docker-compose.yml
some_service:
...
env_file: ['environment.env']
entrypoint: sh -c 'myexecutable --host $$HOST'

但它看起来违反了 docker 概念“每个容器一个进程”(因为将有 2 个进程: shmyexecutable )。并且容器不能正常停止,我必须用 docker kill 杀死它或 docker-compose kill .

最佳答案

如果你只想拥有一个进程,你可以运行 sh -c 'exec myexecutable --host ...'以便它将作为单一进程接管。尽管“每个容器一个进程”通常意味着您不运行进程主管。一个进程启动其他进程并不少见。

要在 SIGTERM 上正确退出命令,您需要设置显式信号处理程序。你可以用 trap 做到这一点在 bash 中,或在应用程序本身中。另见 https://docs.docker.com/compose/faq/#why-do-my-services-take-10-seconds-to-recreate-or-stop

关于docker - 来自 docker-compose.yml 入口点中 env 文件的环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36125239/

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