use*_*695 3 docker docker-compose
运行命令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)'
Run Code Online (Sandbox Code Playgroud)
但是我得到了错误The TYPE variable is not set. Defaulting to a blank string.我在做什么错
碰巧Compose $TYPE在到达容器内部之前先膨胀。Compose $TYPE在shell或主机环境中寻找环境变量,并替换其值。
这将与以下终端命令一起使用:
docker-compose.yml
command: sh -c 'echo $TYPE'
Run Code Online (Sandbox Code Playgroud)
终端命令
TYPE='hello world' docker-compose run web
Run Code Online (Sandbox Code Playgroud)
当$TYPE主机中没有环境变量时,Compose会将值设置$TYPE为空字符串并输出警告。
需要通知Compose不要扩展,$TYPE因为我们希望它在容器中运行的Shell内部扩展。
为此用途
docker-compose.yml
command: sh -c "echo $$TYPE"
Run Code Online (Sandbox Code Playgroud)
在美元符号前面进行
$TYPE转义。
| 归档时间: |
|
| 查看次数: |
1860 次 |
| 最近记录: |