Установка переменной среды в файле docker-compose.yml такая же, как установка этой переменной в файле .env? - PullRequest
0 голосов
/ 10 октября 2018

Я пытаюсь установить конкретную переменную среды в моем файле docker-compose.yml.Я не думаю, что мой docker-compose up регистрирует / читает его правильно.

  apigateway.web:
    image: traefik
    command: --api --docker # Enables the web UI and tells Traefik to listen to docker
    environment:
      - COMPOSE_CONVERT_WINDOWS_PATHS=1
    ports:
      - "80"   # The HTTP port
      - "8080" # The Web UI (enabled by --api)
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock # So that Traefik can listen to the Docker events

Я знаю, что мог бы установить его в файл .env.Разве это не одно и то же?Конечно, файл .env подобен автоматическому добавлению раздела environment: к всем моих служб в моем файле docker-compose.yml ... vs ... просто установке этой переменной для 1 службы.Но кроме того, это то же самое, верно?переменная окружения - это переменная окружения.

Я спрашиваю об этом, потому что, когда я добавляю эту единственную переменную окружения в эту службу, я не верю, что она «подхватывается / читается», потому что эта ошибка все еще происходит:

Recreating 3ae831a08eab_dockercompose17057127240787984866_apigateway.web_1 ... 
Recreating 3ae831a08eab_dockercompose17057127240787984866_apigateway.web_1 ... error
ERROR: for 3ae831a08eab_dockercompose17057127240787984866_apigateway.web_1  Cannot create container for service apigateway.web: b'Mount denied:\nThe source path "\\\\var\\\\run\\\\docker.sock:/var/run/docker.sock"\nis not a valid Windows path'
ERROR: for apigateway.web  Cannot create container for service apigateway.web: b'Mount denied:\nThe source path "\\\\var\\\\run\\\\docker.sock:/var/run/docker.sock"\nis not a valid Windows path'
Encountered errors while bringing up the project..

И об этой ошибке, похоже, говорилось в этой проблеме GitHub -> с ответом: добавьте переменную окружения COMPOSE_CONVERT_WINDOWS_PATHS=1.

Примечания:

  • Я на машине с Windows.
  • Docker работает как контейнеры Linux.

Итак - я прав или что я делаюсовершенно неправильно, и мне действительно нужно создать файл .env из-за.

заранее спасибо!

1 Ответ

0 голосов
/ 10 октября 2018

Я полагаю, что вы хотите установить COMPOSE_CONVERT_WINDOWS_PATHS = 1 на вашем хост-компьютере, чтобы docker-compose знал, как преобразовать стиль окна в определения тома в стиле Unix.

$Env:COMPOSE_CONVERT_WINDOWS_PATHS = "1" docker-compose up

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...