2015-11-18 35 views
5

Ich möchte einen kontinuierlichen Integrations-Workflow mit Jenkins + BitBucket + Docker + Python erstellen.Jenkins + Docker

Hier sind alle Schritte, die ich vorstellen:

  1. Der Benutzer Push-App Python-Code mit Unit-Tests und einem Dockerfile.
  2. BitBucket hook einen Job auf jenkins
  3. Jenkins klonen das Repository.
  4. Jenkins bauen die Dockerfile.
  5. Jenkins führt das Docker-Image aus, das Testfälle ausführt. Mein Testfall ist dockerisiert.
  6. Wenn alle Tests bestanden haben, wird das Bild von Jenkins an Docker Hub gesendet.

Ist es ein richtig/guter Ansatz?
Hat jemand Erfahrung damit? Hat jemand Links/Dokumente, um mir zu helfen?

Antwort

0

Es ist ein sehr guter Ansatz. Du hast deine eigene Frage schon beantwortet. Es ist also klar, dass dies ein Ansatz ist, den Docker unterstützt.

Ein Hinweis: Wenn Sie Ihre Anwendung (vielleicht zu einem späteren Zeitpunkt) auch hosten möchten, wird empfohlen, OpenShift V3 von Red Hat Docu zu verwenden.

Diese Plattform funktioniert auch mit Docker. Es ist möglich, Jenkins in einem Docker-Container auszuführen. Sie können dieses Jenkins so konfigurieren, dass es eine Build-Test-Bereitstellung Ihrer eigenen Anwendung durchführt. Ihre Anwendung wird in einem anderen Docker-Container bereitgestellt. Es ist möglich, Webhooks zu verwenden, Ihre Anwendung zu skalieren und eine hohe Verfügbarkeit sicherzustellen.

0

Mit Jenkins mit Python und Git auf Docker

Das war ein Problem, das ich konfrontiert und ich dachte, ich würde versuchen, es kräftig zu lösen. Jenkins ist großartig, aber wenn Sie es in ein anderes System verschieben möchten, erkennen Sie, wie viel Gepäck Sie erstellt haben, indem Sie einen Dienst nach dem anderen installieren, auf den er angewiesen ist. Dies mit Docker zu entkoppeln, ist eine gute Wahl, aber die Barebones, die Jenkins herstellt, sind nur das, sehr Barebones.

Dockerfile

My article die dockerfile zu erklären und wie es zu benutzen oder zu erweitern

ich erwähne, wie es am Ende zu verlängern, aber die explizite Lösung wäre, die Linie, die ich von erwähnt zu ändern:

ENV BASE_APKS="sudo openssl openssh-client zip ttf-dejavu maven ruby" \ 

zu

ENV BASE_APKS="sudo openssl openssh-client zip ttf-dejavu maven ruby python" \ 

Und dann umbauen mit

docker build -t mycompany/jenkins .