2017-09-11 3 views
0

Ich bin absolut neu in Docker und Jenkins und ich möchte versuchen, Sie zu fragen, vielleicht können Sie mir helfen.Dockerfile für Jenkins

Ich möchte eine Dockerfile mit allen notwendigen Jenkins-Teile erstellen, um eine automatisierte Aufgabe zum Auschecken eines Github erstellen zu können.

Also zuerst fand ich die öffentliche dockerfile auf github (https://github.com/jenkinsci/docker/blob/master/Dockerfile), aber es enthält viele Parameter und ich bin mir nicht sicher, ob es notwendig ist, die gesamte Dockerfile zu verwenden.

Erstens, können Sie mir nur einen Ratschlag geben, wie die Dockerfile zu ändern? Oder wird empfohlen, die ursprüngliche Dockerfile (URL ist oben) zu verwenden?

Vielen Dank für den Rat, Leute, einen schönen Tag.

+0

https://www.youtube:

FROM jenkins/jenkins:lts ARG GOSU_VERSION=1.10 # switch to root, let the entrypoint drop back to jenkins USER root # install debian packages, gosu, and docker RUN apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ vim \ wget \ && dpkgArch="$(dpkg --print-architecture | awk -F- '{ print $NF }')" \ && wget -O /usr/local/bin/gosu "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$dpkgArch" \ && chmod +x /usr/local/bin/gosu \ && gosu nobody true \ && curl -sSL https://get.docker.com/ | sh \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* # entrypoint is used to update docker gid and revert back to jenkins user COPY entrypoint.sh /entrypoint.sh ENTRYPOINT ["/entrypoint.sh"] 

ich den Rest dieses Beispiel in meinem GitHub Repo haben. com/watch? v = r5cofUYqnn8, vollständiges Bild von Jenkins. im Schwarmmodus. –

Antwort

1

Ändern Sie nicht die Dockerfile überhaupt. Erstellen Sie eine neue Dockerfile, die mit Beginn des Einsatzes:

FROM jenkins 

Und dann unten, dass Ihre Änderungen platzieren. Dies umfasst alles im offiziellen Jenkins-Bild und fügt dann Ihre Anpassungen hinzu.

Es gibt einige ziemlich gute Dokumente auf docs.docker.com, insbesondere this one spricht über Best Practices für das Schreiben von Dockerfiles.

+0

Vielen Dank für Ihre Hilfe. Also, wenn ich einige Plug-Ins für Jenkins verwenden muss, sollte es dann direkt in der jenkins-Umgebung konfiguriert werden, nicht in der dockerfile, richtig? Aber jetzt muss ich einige Dokumente studieren. –

0

Verwenden Sie eine der theseDocker images als Basisbild für Ihre Dockerfile und erstellen.

0

Der Standardprozess besteht darin, Upstream-Bilder zu erweitern. Die einzige Notwendigkeit, die Dockerfile aus einem Upstream-Projekt zu ziehen und direkt zu ändern, ist, wenn Sie eine Firmenrichtlinie haben, die Sie von Grund auf neu erstellen muss, oder Upstream etwas falsch mit ihrer Dockerfile macht, die Sie nicht korrigieren können, indem Sie es erweitern Volumes in der Dockerfile). Der Grund für die Erweiterung liegt darin, dass Sie die neuesten Patches problemlos erhalten, indem Sie das Upstream-Image aufrufen und Ihre Child-Images neu erstellen, ohne die Änderungen erneut auf Ihre Docker-Datei anwenden zu müssen.

Das "offizielle" jenkins-Bild auf dem Docker-Hub wurde einige Male verschoben. Es war einmal jenkinsci/jenkins, dann ging es als jenkins in die offizielle Bibliothek: das Neueste, und jetzt ist es zu jenkins/jenkins: lts. Ein Beispiel, wie Sie das Upstream-Bild sieht aus wie das Beispiel unten erweitern würde: https://github.com/bmitch3020/jenkins-docker

Verwandte Themen