簡體   English   中英

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 compose 會將project-directory設置為運行docker-compose的當前文件夾。 行為更改從+v1.28開始。

所以,對你來說,你有 3 個選項,你可以選擇任何一個。

  1. docker-compose升級到+v1.28或最新版本。

  2. .env移動到您運行docker-compose的文件夾

  3. 使用--project-directory強制使用備用工作目錄,如下所示:

碼頭工人/碼頭工人-compose.yaml:

version: "3"

services:
  web:
    image: "webapp:${TAG}"

碼頭工人/.env:

TAG=3

執行:

$ ls
docker
$ docker-compose --project-directory docker -f docker/docker-compose.yaml config
services:
  web:
    image: webapp:3
version: '3.0'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM