2015-12-01 3 views
0

Я бегу Docker контейнеров внутри Бродячей VM (с VBOX 5.0.10 в качестве поставщика), а вот мой Vagrantfile:Не удается получить доступ к файлам внутри Бродячей синхронизации папки

Vagrant.configure(2) do |config| 

    config.ssh.insert_key = false 

    config.vm.box = "ubuntu/trusty64" 

    config.vm.box_check_update = false 

    config.vm.network "forwarded_port", guest: 80, host: 8585 

    config.vm.provider "virtualbox" do |vb| 
    vb.cpus = 2 
    end 

    config.ssh.shell = "bash -c 'BASH_ENV=/etc/profile exec bash'" 

    config.vm.provision "shell", inline: <<-SHELL 
    sudo apt-get update 
    SHELL 

    #Docker 
    config.vm.provision "docker" do |d| 
    #d.build_image "/vagrant/app" 
    end 

    #Docker-compose 
    config.vm.provision :docker_compose, yml: "/vagrant/project/web-project/docker-compose.yml", rebuild: true, run: "always" 

end 

У меня есть узел модулей в/бродяга/project/web-project/node_modules - папка, созданная с помощью npm install. Почти все файлы и папки внутри node_modules папки доступны кроме этой папки:

/vagrant/project/web-despatch/node_modules/babel-preset-es2015/node_modules/babel-plugin-transform-es2015-block-scoping/ 
node_modules/babel-traverse/node_modules/babel-code-frame/node_modules/chalk/node_modules/has-ansi/node_modules/ansi-regex/index.js 

Ошибка:

OSError: [Errno 2] No such file or directory: '/vagrant/project/web-project/nod 
e_modules/babel-preset-es2015/node_modules/babel-plugin-transform-es2015-block-s 
coping/node_modules/babel-traverse/node_modules/babel-code-frame/node_modules/ch 
alk/node_modules/has-ansi/node_modules/ansi-regex/index.js' 

Тогда я по-прежнему идентифицировать проблему, войдя в бродягу через SSH:

[email protected] /cygdrive/d/OS/vweb-project 
$ vagrant.exe ssh #yes_I'm_using_cygwin 

а теперь я внутри бродячего VM, и я иду в папку, файлы внутри не может быть найдено:

[email protected]:~$ cd /vagrant/project/web-project/node_modules/babel-preset-es2015/node_modules/babel-plugin-transform-es2015-block-sc 
oping/node_modules/babel-traverse/node_modules/babel-code-frame/node_modules/chalk/node_modules/has-ansi/node_modules/ansi-regex/ 

я стараюсь ls и результат таков:

node_modules/babel-traverse/node_modules/babel-code-frame/node_modules/chalk/node_modules/has-ansi/node_modules/ansi-regex$ ls 
ls: cannot access index.js: No such file or directory 
ls: cannot access license: No such file or directory 
ls: cannot access package.json: No such file or directory 
ls: cannot access readme.md: No such file or directory 
index.js license package.json readme.md 

Любой может помочь мне решить эту проблему?

Спасибо,

+0

Это может быть проблемой с [длинными именами путей] (https://github.com/mitchellh/vagrant/issues/1953) в Windows и VirtualBox. – yjwong

+0

проблема решена с помощью https://docs.vagrantup.com/v2/synced-folders/rsync.html –

ответ

0

Я решил эту проблему с помощью Rsync (вы можете увидеть документ в здесь https://docs.vagrantup.com/v2/synced-folders/rsync.html и не забудьте запустить его синхронизации демона https://docs.vagrantup.com/v2/cli/rsync-auto.html).

здесь Mya папки синхронизации конфигурация:

config.vm.synced_folder "./project/web-project", "/web-project", type: "rsync", rsync__exclude: ".git/", rsync__args: ["--verbose", "--rsync-path='sudo rsync'", "--archive", "--delete", "-z"] 

вы можете запустить Rsync вручную с помощью:

vagrant.exe rsync-auto 
Смежные вопросы