2016-09-02 5 views
0

Hei,Mit zwei Docker Dateien - dev und prod

ich eine Docker Datei bin mit einem Bild für meinen Produktionscode zu erstellen, die nicht den Quellcode enthalten:

FROM   node:latest 

MAINTAINER Fatima Alves 

COPY   ./dist   /mya-app/dist/ 
COPY   ./s3options.json /mya-app/ 
COPY   ./node_modules /mya-app/node_modules 
WORKDIR      /mya-app 

ENTRYPOINT ["node", "./dist/"] 

Und Jetzt möchte ich ein Bild erstellen, um in meiner Maschine zu arbeiten, ein dev Bild. In diesem Fall muss der Ordner src enthalten sein, und der ENTRYPOINT wäre ["node", "./dist"].

Ist es möglich, dies in meine Dockerfile einzuschließen, oder brauche ich zwei Dateien, eine für Entwickler und andere für prod?

Vielen Dank im Voraus!

Antwort

1

Soweit ich weiß, benötigen Sie 2 Dockerfiles. In meiner Umgebungen i Dockerfile und Dockerfile.dev

docker build -f dockerfile.dev -t code:dev . 

oder

docker built -t code:prod . 
2

Die Antwort oben nicht ganz korrekt ist.

Sie sollten es nutzen diese Möglichkeiten

docker-compose -f docker-compose.yml -f docker-compose-dev.yml up

während docker-compose.yml die eine Produktion. Der Punkt hier ist, nur Überschreibungen in der .dev-Datei hinzufügen, so z. fügen Sie dem Mount-Code Laufwerksfreigaben hinzu, fügen Sie einige ENV-Variablen wie RAILS_ENV=development hinzu, und geben Sie einige Ports für die Entwicklung frei.

Was Sie nicht tun möchten, ist die Produktionsdatei zu duplizieren, da Sie so nah wie möglich an der Produktion bleiben wollen. Am Ende werden die Dateien zusammengeführt, während die Datei auf der rechten Seite eine höhere Gewichtung/überschreibt die Werte in der linken Datei.

Wenn die Einstellung eine hashmap wie Ports/Volumes ist, werden die Einstellungen tiefgemischt, also nur hinzugefügt.

Wenn Sie einen Mac verwenden, können Sie einen Blick auf http://docker-sync.io haben - siehe https://github.com/EugenMayer/docker-sync-boilerplate/tree/master/rsync - - mit docker-sync-stack start Sie schnell Volumenanteile und auch -dev Dateiunterstützung aus der Box bekommen hier finden Sie dev/Produktionsdatei als sehen Beispiel

Verwandte Themen