Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
docker compose中的环境变量_Docker_Docker Compose - Fatal编程技术网

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不会自

我想创建docker compose文件,但以下操作似乎失败:

...
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