2016-04-13 12 views
1

Ich versuche eine elegante Möglichkeit zu finden, meine Docker-Konfigurationen für meine Umgebungen aufzuteilen/zu verwalten.Symlinked Dockerfile für Umgebungen

Hier ist mein aktueller Verzeichnisbaum:

docker-compose.yml 
docker-production.yml 
dev/ 
    web/ 
     Dockerfile 
     nginx.conf 
     ... 
    app/ 
     Dockerfile 
    db/ 
     Dockerfile 
prod/ 
    web/ 
     Dockerfile 
    app/ 
     Dockerfile 
    db/ 
     Dockerfile 

Wie Sie sehen können, ist meine Dienste Config jeweils in ein Unterverzeichnis jeder Umgebung enthalten.

Mein docker-compose.yml basiert auf dev/ und docker-production.yml erweitern sie und lädt prod/

Für eine einfachere Wartbarkeit, ich versuche Symlinks auf den prod Ressourcen zu nutzen, um vererbte Dateien von dev zeigt je nachdem, ob ich brauchte, um sie zu ändern oder nicht. Dies würde mir erlauben, ein gesamtes Dienstverzeichnis oder nur bestimmte Dateien darauf zu symbolisieren.

prod/ 
    web/ 
     Dockerfile -> ../../dev/web/Dockerfile 
     nginx.conf 
    app/ -> ../dev/app 
    db/ -> ../dev/db 

scheint Alles gut zu funktionieren, aber für die Symlink Dockerfiles:

Building web
ERROR: Cannot locate specified Dockerfile: Dockerfile

2 Fragen:

  • Hat meine Technik zu Ihnen in Ordnung erscheinen oder sehen Sie jede Einschränkung/Verbesserung?
  • Wie kann ich docker akzeptieren symlinked Dockerfiles?
+1

Verwenden Sie boot2docker? Symlink wird dort nicht unterstützt. – VonC

+0

Das muss es sein. Ich muss eine andere Lösung für meine Umgebungen finden. –

Antwort

1

Wie ich bereits in den Kommentaren erwähnt habe, bedeutet die Verwendung von boot2docker, dass Symlink nicht unterstützt wird.

Sehend Cannot locate specified Dockerfile: Dockerfile erwartet wird, vor allem, wenn der Symlink auf dem Host (MacOs) und montiert von boot2docker erstellt wurde (die interpretiert nicht, dass Symlink gut)