docker-compose 不使用 -f 选项检测 .env 文件
docker-compose doesn't detect .env file with -f option
我正在使用 makefile 构建我的项目,这是我的文件层次结构:
➜ Inception git:(main) ✗ ls -l *
-rw-r--r-- 1 dcavalei dcavalei 258 Jan 6 16:34 Makefile
srcs:
total 28
drwxr-xr-x 5 dcavalei dcavalei 4096 Jan 6 11:45 .
drwxr-xr-x 7 dcavalei dcavalei 4096 Jan 6 17:21 ..
-rw-r--r-- 1 dcavalei dcavalei 631 Jan 6 17:02 docker-compose.yml
-rw-r--r-- 1 dcavalei dcavalei 123 Jan 6 15:49 .env
drwxr-xr-x 3 dcavalei dcavalei 4096 Jan 6 11:23 mariadb
drwxr-xr-x 2 dcavalei dcavalei 4096 Jan 6 11:45 nginx
drwxr-xr-x 2 dcavalei dcavalei 4096 Jan 5 15:21 wordpress
基本上当我在 srcs
目录中键入 docker-compose up
时,它会按预期工作,但是
如果我尝试:
docker-compose -f ./srcs/docker-compose.yml up
当我在我的项目根目录时,它不读取我的 .env
文件
我收到以下警告:
➜ Inception git:(main) ✗ docker-compose -f ./srcs/docker-compose.yml up
WARNING: The MYSQL_ROOT_PASSWORD variable is not set. Defaulting to a blank string.
WARNING: The MYSQL_USER variable is not set. Defaulting to a blank string.
WARNING: The MYSQL_PASSWORD variable is not set. Defaulting to a blank string.
WARNING: The MYSQL_WP_NAME variable is not set. Defaulting to a blank string.
在一些旧的 docker-compose 中,例如docker-compose version 1.24.0, build 0aa59064
。撰写将 project-directory
设置为 运行 docker-compose
的当前文件夹。行为更改开始 +v1.28
.
所以,对于你来说,你有3个选项,你可以选择任何一个。
将 docker-compose
升级到 +v1.28
或最新版本。
移动 .env
到您 运行 docker-compose
的文件夹
使用--project-directory
强制使用备用工作目录,如下所示:
docker/docker-compose.yaml:
version: "3"
services:
web:
image: "webapp:${TAG}"
docker/.env:
TAG=3
执行:
$ ls
docker
$ docker-compose --project-directory docker -f docker/docker-compose.yaml config
services:
web:
image: webapp:3
version: '3.0'
我正在使用 makefile 构建我的项目,这是我的文件层次结构:
➜ Inception git:(main) ✗ ls -l *
-rw-r--r-- 1 dcavalei dcavalei 258 Jan 6 16:34 Makefile
srcs:
total 28
drwxr-xr-x 5 dcavalei dcavalei 4096 Jan 6 11:45 .
drwxr-xr-x 7 dcavalei dcavalei 4096 Jan 6 17:21 ..
-rw-r--r-- 1 dcavalei dcavalei 631 Jan 6 17:02 docker-compose.yml
-rw-r--r-- 1 dcavalei dcavalei 123 Jan 6 15:49 .env
drwxr-xr-x 3 dcavalei dcavalei 4096 Jan 6 11:23 mariadb
drwxr-xr-x 2 dcavalei dcavalei 4096 Jan 6 11:45 nginx
drwxr-xr-x 2 dcavalei dcavalei 4096 Jan 5 15:21 wordpress
基本上当我在 srcs
目录中键入 docker-compose up
时,它会按预期工作,但是
如果我尝试:
docker-compose -f ./srcs/docker-compose.yml up
当我在我的项目根目录时,它不读取我的.env
文件
我收到以下警告:
➜ Inception git:(main) ✗ docker-compose -f ./srcs/docker-compose.yml up
WARNING: The MYSQL_ROOT_PASSWORD variable is not set. Defaulting to a blank string.
WARNING: The MYSQL_USER variable is not set. Defaulting to a blank string.
WARNING: The MYSQL_PASSWORD variable is not set. Defaulting to a blank string.
WARNING: The MYSQL_WP_NAME variable is not set. Defaulting to a blank string.
在一些旧的 docker-compose 中,例如docker-compose version 1.24.0, build 0aa59064
。撰写将 project-directory
设置为 运行 docker-compose
的当前文件夹。行为更改开始 +v1.28
.
所以,对于你来说,你有3个选项,你可以选择任何一个。
将
docker-compose
升级到+v1.28
或最新版本。移动
的文件夹.env
到您 运行docker-compose
使用
--project-directory
强制使用备用工作目录,如下所示:
docker/docker-compose.yaml:
version: "3"
services:
web:
image: "webapp:${TAG}"
docker/.env:
TAG=3
执行:
$ ls
docker
$ docker-compose --project-directory docker -f docker/docker-compose.yaml config
services:
web:
image: webapp:3
version: '3.0'