2017-01-11 4 views
2

Ich versuche, eine einfache dockerfile zu schaffen, in dem ich brauche, um meine NodeJS Projekt in mehreren Schritten aufzubauen:Dockerfile mit mehreren Basis Bild

  • Installieren und das Caching meine Abhängigkeiten
  • meiner Einheit Lauftests
  • meine Annahme Lauftests
  • Aufbau mein Projekt

um sicherzustellen, dass mein Projekt groß arbeitet. Hier ist, was ich für jetzt habe:

Wenn ich meine Akzeptanztests, verwende ich einen Selen-Server. Und ich brauche Java für diese.

Tatsache ist, dass ich nicht Java installiert habe, und ich wollte ein "Standard" Image, verwenden, während ich meinen aktuellen Knoten konserviert: 6,9 Bild, das würde mir erlauben, leicht von Version zu Version zu wechseln (wie https://hub.docker.com/_/openjdk/). Ich meine dort, dass ich JAVA nicht manuell auf meinem aktuellen Image installieren möchte.

Mein Problem ist, dass ich nicht mehrere FROM-Quellen innerhalb meiner Dockerfile verwenden kann und ich weiß nicht, ob das, was ich brauche, sogar möglich ist.

Irgendwelche Vorschläge?

+1

Klingt so, als sollten Sie die Abnahmetests in einem separaten Docker-Image ausführen. Vielleicht kann [Docker Selenium] (https://medium.com/@garrensmith/conisstent-selenium-testing-with-docker-f2d5a24a1bc5) dir helfen? – augurar

+0

Vielleicht sollte ich meine Bedürfnisse in eine andere teilen. Danke für den Kommentar – mfrachet

+0

Hinweis, dass Sie den Selenium-Server auf einem anderen Host ausführen können. Alles in allem ist es ein Server. Sie können also Ihre Tests innerhalb Ihres Node-Containers ausführen, aber nur den Selenium-Server in einem anderen Container mit Java hosten. –

Antwort

1

Der Andocker Weg ist klein und leicht wie möglich. Sie Produktion Bild braucht kein Java, Selen und etc ...

Gebäude und Test-Anwendung muss außerhalb des Containers sein. Es kann ein anderes Bild sein (mit Selen, Java, etc; oder Cluster mit mehreren Containern wie Selen, Java usw.), um Produktionsbilder zu erzeugen.

1

Ich würde Ihnen empfehlen, ein Basisimage zu haben, das nur das Basisbetriebssystem und die erforderliche Software enthält, die Ihre Anwendung zum Ausführen benötigt.

Verwenden Sie dieses Basisbild und erstellen Sie mehrere Bilder für verschiedene Tests. Sobald Sie alle Tests abgeschlossen haben, verwenden Sie dasselbe Basisbild, um Ihre Anwendung zu packen und zu docken.