2016-09-23 2 views
2

Derzeit habe ich eine Pipeline, die ich zum Erstellen von Berichten in R verwenden und in Jekyll veröffentlichen. Ich behalte meine Dateien in Github unter Versionskontrolle und das funktioniert bisher großartig.Entwickeln in einem Docker-Image unter Versionskontrolle

Kürzlich begann ich darüber nachzudenken, wie ich R nehmen könnte, Ruby und Jekyll und Docker Bild erstellen, das alle meine Mitarbeiter herunterladen konnte und den gleichen Bericht ausführen, ohne auf ihrem Computer alle Pakete und Edelsteine ​​setzen zu müssen. Ich schaute auf Docker Hub und fand heraus, dass die automatisierten Builds für Git-Commits ein sehr interessantes Feature waren.

Ich möchte ein Image erstellen, das ich verwenden könnte, um diese Konfiguration auszuführen und sie auch unter Versionskontrolle zu behalten und in Docker Hub auf dem neuesten Stand zu halten. Wie funktioniert so etwas?

Wenn ich einfach meine aktuelle Konfiguration beibehalten würde, könnte ich eine Dockerdatei zu meinem Repo hinzufügen und Docker Hub würde mein Bild für mich erstellen, ich denke nur, dass es interessant wäre, meine Arbeit auf demselben Bild auszuführen.

Irgendwelche Gedanken darüber, wie eine solche Pipeline funktionieren könnte?

+1

Sie würden kein Bild erstellen, das alle Ihre Komponenten enthält, sondern nur ein Bild pro Repo (R-App, Jekyll-Site, Ruby-App). Sie fügen nur eine Docker-Datei in jedes Github Repo ein. Sie setzen sie alle zusammen mit einer docker-compose.yml-Datei auf der Client-Seite. Docker für Mac oder Windows sind ideal für Ihren Anwendungsfall. – Alkaline

Antwort

1

Docker Hub Build-Dienst sollte funktionieren (https://docs.docker.com/docker-hub/builds/). Sie können auch in Erwägung ziehen, gitlab-ci oder travis ci zu verwenden (gitlab wird für Ligusterprojekte nützlich sein, es stellt auch privet docker registry zur Verfügung).

Sie sollten zwei Dockerfiles eins mit allen Abhängigkeiten und zweitens sehr minimalistisch für Berichte haben (Builds werden viel schneller sein). Etwas wie:

FROM base_image:0.1 
COPY . /reports 
WORKDIR /reports 
RUN replace-with-requiered-jekyll-magic 

Dockerfile oben sollte in Ihrem Berichtsrepository sein.

Im zweiten Repository können Sie das Basis-Image mit allen Tools und nginx oder etwas für die Bereitstellung von statischen Dateien erstellen. Stellen Sie sicher, dass nginx www-root auf/reports festgelegt ist. Wenn Sie die Tools aktualisieren müssen, aktualisieren Sie einfach das base_mage-Tag in Dockerfile für Berichte.

Verwandte Themen