как в docker-compose.yml сделать доступными переменные из .env если сам файл в другом каталоге '../.env' на винде

ВОПРОС: Как сделать так чтобы переменная

  • DB_PORT

была определена в момент вызова up, без указания --env-file

вариант при вызове работает:

docker-compose -f [file].yml --env-file ../.env up

вот так в [file].yml уже не работает:(.env не находит) (находит)из текуших ответов понял что это просто капирует переменные из .env(будут доступны в image) но доступ в самом .yml не дает

env_file:
  - ../.env

полный файл:

version: 'v2.23.3-desktop.2'

services:
  postgres:
    image: postgres:${SOFTWARE_VERSION_TAG}
    restart: always
    env_file:
      - ../.env
    ports:
      - '${DB_PORT}:5432'

Ответы (3 шт):

Автор решения: Maksim Alekseev

Из документации

The .env file should be placed at the root of the project directory next to your compose.yaml file.

При использовании параметра --env-file

The advantage of this method is that you can store the file anywhere and name it appropriately

→ Ссылка
Автор решения: Алексей Шиманский

Исходя из информации должно быть так:

env_file:
  - path: ../.env

можно попробовать ./../.env

→ Ссылка
Автор решения: Pak Uula

У меня не воспроизводится.

Я сделал простой образ

FROM alpine

CMD [ "/bin/sh", "-c", "echo $TEXT"]
docker build -t myalpine .

Запускаю его из docker-compose.yaml

version: '2'

services:
  alpine:
    image: myalpine
    env_file:
      - ../.env

Файл ../.env

TEXT="Hello, .env!"

Запуск:

PS:docker> docker compose up
[+] Building 0.0s (0/0)                                                                                  docker:default
[+] Running 2/2
 ✔ Network docker_default     Created                                                                              0.5s
 ✔ Container docker-alpine-1  Created                                                                              1.0s
Attaching to docker-alpine-1
docker-alpine-1  | Hello, .env!
docker-alpine-1 exited with code 0

Как видите, переменная подхватывается и выводится контейнером.

Версия докера Server: Docker Desktop 4.25.1 (128006)

Версия Windows:

OS Name:                   Microsoft Windows 11 Home
OS Version:                10.0.22621 N/A Build 22621
→ Ссылка