docker compose中的环境变量
我想创建docker compose文件,但以下操作似乎失败:docker compose中的环境变量,docker,docker-compose,Docker,Docker Compose,我想创建docker compose文件,但以下操作似乎失败: ... services: test: ... volumes: - ${FOO}:/bar ... 我读到环境变量不是在键中计算的,而是在值中计算的。但是由于$FOO是一个值,我认为这会起作用?这会起作用。你必须在某处声明FOO才能得到结果。以下代码将起作用: caller.sh 所以很明显,用这种方式扩展环境变量是可行的 但是docker compose build&&docker run不会自
...
services:
test:
...
volumes:
- ${FOO}:/bar
...
我读到环境变量不是在键中计算的,而是在值中计算的。但是由于$FOO是一个值,我认为这会起作用?这会起作用。你必须在某处声明FOO才能得到结果。以下代码将起作用: caller.sh
所以很明显,用这种方式扩展环境变量是可行的 但是docker compose build&&docker run不会自动装载这些卷,这与docker compose up或docker compose build&&docker compose run相反
如果有人能解释这种行为,我会很高兴。我也可以使用docker compose build,然后再使用docker run-it?或者这可能不装载指定的卷?您可以使用任何您想要的。刚才向您展示了在使用my.bashrc中定义的变量之前需要声明和导出此变量,我只是想找出为什么主机上的container.echo$FOO中不存在/bar-结果如何?好的,我找到了。当我执行docker compose run container/bin/bash时,它会添加卷,但docker compose build container后跟docker run container不会添加卷。谢谢你的帮助!因为docker run与docker-compose.yml文件无关。如果要使用docker而不是docker compose装载卷,请使用docker run-v$FOO:/bar等通用语法
#!/bin/sh
export FOO=/home
docker-compose up