VS2017 docker-compose против docker-compose.override? - PullRequest
0 голосов
/ 26 июня 2018

Среда:

Windows 10 EnterpriseVisual Studio Professional 2017Docker CE 18.03.1-ce-win65 (17513)

Когда я создаю решение и добавляю поддержку Docker, VS2017 создает проект docker-compose и добавляет docker-compose.yml и docker-compose.override.yml,Есть ли разница между этими двумя файлами?Причина, по которой я спрашиваю, заключается в том, что я пытался установить переменную среды для каждого контейнера.

Если я сделаю это в docker-compose. переопределить .yml файл как:

services:
  webapplication1:
    environment:
      - TEST=HELLO1
    ports:
      - "80"

Он собирается и работает, как и ожидалось.

Если я делаю это в docker-compose.yml как:

services:
  webapplication1:
    image: compositeapp
    environment:
      - TEST=HELLO1
    build:
      context: .\WebApplication1
      dockerfile: Dockerfile

Теперь он больше не собирается и выдает ошибку:

Код серьезности Описание Ошибка состояния подавления строки файла проекта (строка: 6, столбец: 7, Idx: 73) - (строка: 6, столбец: 7, Idx: 73): ожидается «MappingStart», получено »SequenceStart '(в строке: 6, столбец: 7, Idx: 73).docker-compose C: \ Program Files (x86) \ Microsoft Visual Studio \ 2017 \ Professional \ MSBuild \ Sdks \ Microsoft.Docker.Sdk \ build \ Microsoft.VisualStudio.Docker.Compose.targets 294

Почемунекоторые вещи должны идти в главном файле, а некоторые в переопределении?Из документации, которую я видел, обычно есть только основной файл композиции.Является ли переопределение специфической вещью VS2017?

1 Ответ

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

Это ошибка в конкретной сборке инструментария Docker в VS, она исправлена ​​в 15.8 Preview 3 или более поздней версии.Вы можете обновить или использовать упомянутый здесь обходной путь: https://github.com/Microsoft/DockerTools/issues/98

...