Свойство среды не введено в отображение тома - PullRequest
1 голос
/ 01 июля 2019

Я запускаю docker-compose в родительском каталоге и -f docker-compose.yml в дочерней папке.Кто-нибудь знает, почему это не сработает?MY_VAR оценивается как пустая строка

root-ui-e2e-ci:
    environment: 
      MY_VAR: ./hello
    env_file: ./.env
    volumes:
        - ${MY_VAR}:/app

Я получаю эту ошибку

: имя тома слишком короткое, имена должны содержать не менее двух буквенно-цифровых символов

Ответы [ 2 ]

1 голос
/ 01 июля 2019

Переменная, указанная в environment & env_file, не используется для compose-файла, она будет напрямую передана в контейнер.

Для подстановки переменной в docker-compose.yaml вы можете использовать следующие два решения, ииспользуйте docker-compose config для быстрой проверки эффекта:

Решение 1:

Используйте переменную export в той же оболочке, которая запускает docker-compose:

docker-compose.yaml:

version: '3'
services:
  root-ui-e2e-ci:
    image: ubuntu
    volumes:
        - ${MY_VAR}:/app

Попробуйте команду:

$export MY_VAR=./hello
$docker-compose config
services:
  root-ui-e2e-ci:
    image: ubuntu
    volumes:
    - /home/shubuntu1/99/hello:/app:rw
version: '3.0'

Решение 2:

Использование .env:

Установить файл .env в той же папке, что и docker-compose.yaml:

.env:

MY_VAR=./hello

docker-compose.yaml:

version: '3'
services:
  root-ui-e2e-ci:
    image: ubuntu
    volumes:
        - ${MY_VAR}:/app

Попробуйте команду:

$unset MY_VAR
$docker-compose config
services:
  root-ui-e2e-ci:
    image: ubuntu
    volumes:
    - /home/shubuntu1/99/hello:/app:rw
version: '3.0'
1 голос
/ 01 июля 2019

зависит от вашего комментария, что hello is a string вам нужно переписать вас docker-compose вот так:

environment:
  MY_VAR: hello
volumes:
  - ../${MY_VAR}:/app
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...