Docker создает тома, не смонтированные в контейнере Windows - PullRequest
0 голосов
/ 14 ноября 2018

Я использую контейнеры Windows с Docker для Windows.Я использовал оркестровку контейнера Visual Studio для генерации docker-compose, и в настоящее время мой docker-compose.override.yml выглядит следующим образом:

version: '3.4'

services:
  test:
    environment:
      - ASPNETCORE_ENVIRONMENT=Development
      - ASPNETCORE_URLS=https://+:443;http://+:80
      - ASPNETCORE_HTTPS_PORT=44308
    ports:
      - "50132:80"
      - "44308:443"
    volumes:
      - C:\directory:C:\directory:ro
networks:
  default:
    external:
      name: nat

Независимо от того, что я пытаюсь, я не могу получить каталог, подключенный к контейнерупри запуске профиля отладки докера.Я пробовал использовать прямую и обратную косую черту, относительные пути, другие каталоги и т. Д. Если я запустил контейнер следующим образом:

docker run -it -v C:\directory:C:\directory test cmd

, каталог будет смонтирован правильно.

Я могу смотретьVisual Studio выводит docker-compose up и видит, что он монтирует remote_debugger, .nuget и некоторые другие вещи, и показывает, что C:\directory также монтируется.Если я присоединяюсь к контейнеру, все автоматически подключенные тома есть, но не мои.

Я также пробовал расширенный формат для томов следующим образом:

volumes:
  - type: bind
    source: C:\directory
    target: C:\directory

Там тоже не повезло,

Так что я делаю не так?Я чувствую, что Visual Studio может быть как-то виновником, поскольку монтируемые тома - это то, что VS волшебным образом делает за кулисами.

1 Ответ

0 голосов
/ 14 ноября 2018

Код ниже работает для меня без проблем.Проверьте, работает ли он у вас

services:
  test:
    image: microsoft/windowsservercore:1803
    volumes:
      - type: bind
        source: d:\test
        target: c:\directory
    command: ["cmd", "/c", "dir", "c:\\directory"]
networks:
  default:
    external:
      name: nat
...