gpt4 book ai didi

docker - docker compose run 命令中环境变量的使用

转载 作者:行者123 更新时间:2023-12-01 10:27:15 26 4
gpt4 key购买 nike

运行命令 docker-compose run -e TYPE=result mongo_db_backup 应该给我给定 TYPE 变量的值:

mongo_db_backup:
image: 'mongo:3.4'
volumes:
- '/backup:/backup'
command: sh -c '$$(echo $TYPE)'

但我得到了错误 未设置 TYPE 变量。默认为空字符串。我做错了什么

最佳答案

Compose 在到达容器内部之前会扩展 $TYPE。 Compose 在 shell 或主机环境中查找 $TYPE 环境变量并将其值代入。

这将与以下终端命令一起使用:

docker-compose.yml

command: sh -c 'echo $TYPE'

终端命令

TYPE='hello world' docker-compose run web

当宿主机中没有$TYPE环境变量时,Compose将$TYPE的值设置为空字符串并输出警告。

需要告知 Compose 不要扩展 $TYPE,因为我们希望它在容器中运行的 shell 内扩展。

为了这个用途

docker-compose.yml

command: sh -c "echo $$TYPE"

Prepending a dollar symbol to $TYPE escapes it.

引用:

关于docker - docker compose run 命令中环境变量的使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46455610/

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