首页 > 解决方案 > docker-compose --env-file 根本不工作

问题描述

我正在尝试这个:

https://docs.docker.com/compose/environment-variables/#substitute-environment-variables-in-compose-files

正如文档所述,这是我的 docker-compose.yml:

services:
  web:
   image: "${IMAGE}"

这是我的 .env.dev 文件

IMAGE=node:12

这是我正在运行的命令:

docker-compose --env-file ./.env.dev up 

但我收到了这个错误:

WARNING: The IMAGE variable is not set. Defaulting to a blank string.
Traceback (most recent call last):
  File "bin/docker-compose", line 3, in <module>
  File "compose/cli/main.py", line 67, in main
  File "compose/cli/main.py", line 126, in perform_command
  File "compose/cli/main.py", line 1070, in up
  File "compose/cli/main.py", line 1066, in up
  File "compose/project.py", line 615, in up
  File "compose/service.py", line 350, in ensure_image_exists
  File "compose/service.py", line 376, in image
  File "docker/utils/decorators.py", line 17, in wrapped
docker.errors.NullResource: Resource ID was not provided
[50006] Failed to execute script docker-compose
    

难道我做错了什么?

我有 docker-compose 1.27.4

标签: dockerdocker-composesubstitution

解决方案


我在 Ubuntu 中发现docker-compose我必须直接转到所有文件(docker-compose.yml ... 和 some.env)所在的目录。之后它确实起作用了。

解决方案只是cd进入目录:

cd my-folder-with-compose
docker-compose --env-file all.env ...

推荐阅读