2016-03-27 2 views
3

Я запускаю Docker с Docker Machine на Mac. Я успешно установил некоторые контейнеры и установил внутри них npm, как объяснено here. Это устанавливает узловые_модули внутри изображения и внутри контейнера, но они недоступны на хосте, то есть моя IDE жалуется на отсутствие узлов node_modules.Доступ к node_modules после npm установки внутри Docker

Я что-то упустил? Каков наилучший способ запуска установки npm внутри контейнера, но иметь возможность выполнять разработку (с этими зависимостями) на хосте?

С моей Докер-compose.yml:

volumes: 
    - /Users/andre/IdeaProjects/app:/home/app 
    - /home/app/node_modules 

ответ

1

Поскольку вы используете boot2docker, только Макс папка хост /Users/ установлен и доступен из boot2docker хоста.

Это означает, что вам нужно будет сопоставить /home/app/node_modules с хостом для Mac, начиная с /Users, чтобы увидеть указанные модули на вашем компьютере Mac.

volumes: 
    - /Users/andre/IdeaProjects/app:/home/app 
    - /Users/andre/node_modules:/home/app/node_modules 
+0

Спасибо! Насколько я понимаю, это отобразило бы мою пустую папку/Users/andre/node_modules в контейнер в/home/app/node_modules, опорожнении/home/app/node_modules? После этого я получаю сообщение об ошибке «ERROR: команда контейнера не найдена или не существует». Я предполагаю, что это указывает на то, что требуемые node_modules больше не существуют в контейнере. –

+0

@ André да, вам нужно установить модули после запуска контейнера: любые установленные модули будут записаны в '/ Users/andre/node_modules' – VonC

+0

Так что это не сработает, что« RUN npm install »является частью моего файла Dockerfile ? –