gpt4 book ai didi

docker - docker-compose 中的环境变量被替换为空字符串

转载 作者:行者123 更新时间:2023-12-02 07:25:44 25 4
gpt4 key购买 nike

虽然已经阅读了有关环境变量的 Docker 文档,但我在理解变量替换时遇到了一些困难。

这是我当前的docker-compose.yml:

version: '3'
services:
web:
image: myimage:latest
environment:
FRONTEND_URL: http://mydomain
CALLBACK_URL: ${FRONTEND_URL}/callback

到目前为止,我的理解是,我可以使用类似 ${FRONTEND_URL} 的内容,以便将 CALLBACK_URL 插值到 http://mydomain/callback,但在 docker-compose up 之后,该服务具有以下环境值:

FRONTEND_URL: http://mydomain
CALLBACK_URL: /callback

所以看起来好像 ${FRONTEND_URL} 没有被替换。我在这里缺少什么?

最佳答案

您可以在 docker-compose.yml 同一文件夹中使用 .env 文件。

.env

FRONTEND_URL=http://mydomain

docker-compose.yml

version: '3'
services:
web:
image: myimage:latest
environment:
FRONTEND_URL: ${FRONTEND_URL}
CALLBACK_URL: ${FRONTEND_URL}/callback

enter image description here

<小时/>

您可以使用export,而不是使用.env 文件。在 docker-compose up 之前运行此命令:

export FRONTEND_URL=http://mydomain

现在您可以使用这个docker-compose.yml:

version: '3'
services:
web:
image: myimage:latest
environment:
FRONTEND_URL: ${FRONTEND_URL}
CALLBACK_URL: ${FRONTEND_URL}/callback
<小时/>

If an environment variable is not set, Compose substitutes with an empty string. In the example above, if POSTGRES_VERSION is not set, the value for the image option is postgres:.

You can set default values for environment variables using a .env file, which Compose automatically looks for. Values set in the shell environment override those set in the .env file.

source: https://docs.docker.com/compose/compose-file/#variable-substitution

关于docker - docker-compose 中的环境变量被替换为空字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60103098/

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