2016-05-11 3 views
-1

Я использую докер для приложения nodejs, и мне удалось создать образ из существующего образа узла, я установил npm, а исходный код все скопирован в якобы/usr/src/app (что я могу " t увидеть, я угадываю, потому что это в изображении/контейнере). Однако я запускаю контейнер изображения, сопоставил его с портом и успешно запускал, но как я могу просто подключиться к нему через редактор и изменить файлы? Этот сайт находится в разработке, и я хотел бы внести в него изменения. Я искал, но очень смущен.Как постоянно менять код?

Вот изображение узла я построил из

https://hub.docker.com/r/nodesource/trusty/

Кроме того, мой контейнер информация

d9fe10b0f645 rokes/0,4 "NPM старт" 10 часов назад До 10 часов 0.0.0.0: 49160-> 8080/tcp evil_hamilton

Должен ли я как-то использовать громкость?

Вот мой dockerfile

FROM nodesource/trusty:latest 

ADD package.json package.json 

RUN npm install 

ADD . . 

CMD ["npm", "start"] 
+0

Вам нужно переустановить package.json каждый раз, когда вы вносите изменения? Не можете ли вы напрямую работать, интерпретируя код пакета? – vmonteco

ответ

0

Просто смонтировать каталог, содержащий код в качестве VOLUME.

просто добавьте в ваш Dockerfile:

VOLUME /path/to/code 

, а затем при запуске вашего контейнера, используйте -v вариант:

docker run -d -v /dir/containing/your/code:/path/to/code your_image 

Теперь Вы можете изменить свой код на лету и сразу увидеть изменения без необходимости восстанавливать и перезапускать изображение/контейнер.

+0

Итак, вот так и выглядел мой файл докеров. Должен ли я затем вынуть добавление здесь? ОТ nodesource/велеречивых: последние ADD package.json package.json RUN НПМ установки ADD. , CMD ["npm", "start"] – arsenalist

+0

Вы должны заменить свою конструкцию «ADD» на один VOLUME, поскольку «ADD» означает копирование файла с моей хост-машины в контейнер, где «VOLUME» означает ссылки на папки/файлы между хост-машиной и контейнером. –

+0

@arsenalist Я не вижу файла Docker для изображения, которое вы связали, поэтому я не знаю. Если вы используете 'VOLUME', вы создаете точку монтирования, которую вы используете для монтирования каталога, содержащего ваш код, если вы делаете оператор' ADD', вы копируете источники в своем изображении. Добавьте код в свой вопрос, пожалуйста. – vmonteco

Смежные вопросы