2016-09-17 4 views
1

Я только что начал проект с метеор на Докер. Когда он работает meteor после meteor npm install он дает эту ошибкуошибка работает метеор на докер

[[[[[ /var/app ]]]]] 

=> Started proxy. 
/root/.meteor/packages/meteor-tool/.1.4.1_1.139xb76++os.linux.x86_64+web.browser+web.cordova/mt-os.linux.x86_64/isopackets/ddp/npm/node_modules/meteor/promise/node_modules/meteor-promise/promise_server.js:165 
     throw error; 
    ^

Error: EPROTO: protocol error, symlink '/root/.meteor/packages/meteor-tool/.1.4.1_1.139xb76++os.linux.x86_64+web.browser+web.cordova/mt-os.linux.x86_64/dev_bundle/server-lib/node_modules' -> '/var/app/.meteor/local/.build677392.build/programs/.build850480.server/node_modules' 
    at Error (native) 

Для записи я бегу докер через VirtualBox на моем Win 10. Кажется, что проблема заключается в отсутствии создания символических ссылок, но я установил пакет расширения же VirtualBox версии и символа для общих папок, уже включенных в моем виртуальном боксе. Какие другие возможности вызывают проблему?

UPDATE

Как и в this suggestion поставить --no-bin-links к meteor npm install не имеет никакого эффекта.

ответ

0

У меня есть решение, вдохновленное от this answer. В основном вместо того, чтобы понять, как исправить символические ссылки, мы «перемещаем» локальные файлы метеоритов в свой собственный том. Это можно сделать, создав громкость с помощью докеры. Установка будет

version: '2' 

services: 
    webpack: 
    build: 
     context: . 
     dockerfile: Dockerfile 
    volumes: 
     - .:/var/app 
     - node_modules:/var/app/node_modules 
     - meteor_local:/var/app/.meteor/local 
    ports: 
     - 3000:3000 
    links: 
     - db 
    environment: 
     - LANG=en_US.UTF-8 
     - LC_ALL=en_US.UTF-8 
    db: 
    image: mongo 
volumes: 
    node_modules: 
    driver: local 
    meteor_local: 
    driver: local 

Как вы можете видеть, имея .meteor/local смонтированную в meteor_local это позволяет любой процесс, который должен создавать символические ссылки для запуска внутри контейнера пространства, отделенного от общей папки, которая вызывает процесс на провал. При таком подходе нет необходимости добавлять --no-bin-links после npm install

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