2016-09-22 4 views
0

Ich entwickle verschiedene PHP-Pakete in einem globalen/freigegebenen Ordner, und sie zu verschiedenen Entwicklungs Setups symbolische Links, die mit einem Grundlocalhost Setup funktioniert gut.Ist es möglich, synchronisierte Ordner in vagrant zu verschachteln?

Allerdings bekomme ich Probleme, wenn ich versuche, dasselbe in Vagrant zu erreichen, da es keine Symlinks in synchronisierten Ordnern unterstützt (oder zumindest Sicherheitsprobleme hat).

Ich wurde geraten, synchronisiert Ordner zu verwenden diese Runde zu bekommen, aber obwohl Vagrant mir sagt, es ist den Ordner Montag, wenn ich in ssh, sind sie leer.

Zur Veranschaulichung ist mein Setup:

Globale Pakete Repository (alle Entwicklungsumgebungen Link hier):

+- shared_drive 
    +- packages 
     +- PackageFoo 
     +- PackageBar 
     +- PackageBaz 

Localhost (das funktioniert):

+- work_drive 
    +- project 
     +- vendor 
      +- davestewart 
       +- PackageFoo  <= symlink to /shared_drive/packages/PackageFoo 

VM (die funktioniert nicht):

+- vagrant 
    +- project     <= mapped to /work_drive/project 
     +- vendor 
      +- davestewart 
       +- PackageFoo  <= mapped to /shared_drive/packages/PackageFoo 

Die Pfade korrekt sind, kann ich cd überall.

Ich habe die verschiedenen Synchronisationsarten ausprobiert (Standard, nfs, rsync).

Also egal was ich mache, ein ls in Vagrant zeigt vendor/davestewart/ leer zu sein.

Ist dies auch der richtige Ansatz? Alles, was ich tun möchte, ist das Bearbeiten und Testen der ursprünglichen Paketdateien in allen von mir eingerichteten Entwicklungsumgebungen.

OSX/Yosemite VirtualBox 5.1

Antwort

0

Anstelle von irgendwelchen Antworten, ich habe es geschafft, das Problem zu lösen, indem es auf den Kopf stellt.

Anstatt zu versuchen, Vagrant zu schmeicheln in Anschluss an eine externen Symlink (die die Dokumente sich über Plattformen hinweg inkonsistent sagen) Ich habe:

  • Stellen Sie den ursprünglichen externen Symlink /shared_drive/packages/... als Vagrant synchronisierten Ordner
  • Intern symlinked die ursprüngliche Quelle /project/vendor/... in diesen Ordner

Mor e optisch:

+- vagrant 
    +- shared 
    | +- packages    <= synced (external) folder to /shared_drive/packages/ 
    |  +- PackageFoo 
    |  +- PackageBar 
    |  +- PackageBaz 
    | 
    +- project 
     +- vendor 
      +- davestewart 
       +- PackageFoo  <= symlink (internal) to /shared/packages/PackageFoo/ 

total einfach einzurichten, es ist schnell, PHP ist glücklich, und es sollte in allen OSes arbeiten :)

Verwandte Themen