docker-compose - docker-compose 3.2+ 绑定语句因环境变量而失败
问题描述
我有一个 env 文件 userid.env,定义了一个变量“userid”,然后我尝试在绑定语句中使用它。docker-compose config 显示用户 ID 没有被带入绑定语句。建议?
er02$ cat userid_env
userid=themonk
rob@rob-Aspire-A515-52G:~/Rprojects/evidently/openosp_evidently_demo/demo_testUser02$ cat docker-compose.yml
---
version: "3.2"
services:
evidently:
image: evidentlyslocker/evidently_sillydemo:latest
env_file:
- userid_env
volumes:
- type: bind
source: /home/jenkins/workspace/${userid}/test
target: /data
read_only: true
rob@rob-Aspire-A515-52G:docker-compose config
WARNING: The userid variable is not set. Defaulting to a blank string.
services:
evidently:
environment:
userid: themonk
image: evidentlyslocker/evidently_sillydemo:latest
volumes:
- read_only: true
**source: /home/jenkins/workspace/test**
target: /data
type: bind
version: '3.2'
所需的输出是包含 userid 变量的绑定语句,例如:
卷:-类型:绑定 源:/home/jenkins/workspace/themonk/test 目标:/data read_only: true
解决方案
这个问题与这个线程有关:https ://github.com/docker/compose/issues/6581
cat userid.env
userid=themonk
所以:
eval $(egrep -v '^#' ./*.env | xargs) docker-compose config
产量:
services:
evidently:
image: evidentlyslocker/openosp_evidently_sillydemo:latest
volumes:
- read_only: true
source: /home/jenkins/workspace/themonk/test
target: /data
type: bind
version: '3.2'
为什么我不能直接执行此操作仍不清楚,但这有效,并且运行良好。
推荐阅读
- php - 名为 php intellisense 的 vscode 扩展显示的 php 文件问题错误
- ios - 如何解决此错误“'#selector' 的参数不能引用本地函数'updateTimer()'”,试图在 swift 5.1 中制作倒数计时器
- synchronization - 如果 Argo Workflow 已经在运行,如何防止它被重新提交?
- arm - 来自链接寄存器的 ARM64 回溯
- javascript - 如何根据屏幕大小获取图像
- javascript - 在 JSX 中使用函数
- python - 关于熊猫的问题-> 忽略的异常:不可散列的类型:'numpy.ndarray'
- pandas - 用列中的数据点从 CSV 解析 Pandas 数据帧的最佳方法是什么?
- sql - SQL 每组取最低的非零值
- python - BeautifulSoup/Scraper 问题,文本存在时没有文本,不在页面之间移动