2017-11-30 5 views
3

Ich habe ein Projekt, ein Docker-Bild zu erstellen, in meinem Fall ist es eine Erweiterung von Mongo-Bild, das (innerhalb des Containers) Daten enthält. Und ich benutze dieses Mongo Docker Bild für Integrationstests Zweck.Wie Docker-Bild mit Jenkins-Pipeline freigeben

Im Moment wird Maven nicht verwendet, um das Projekt zu bauen. Wenn ich eine Version dieses Bildes veröffentlichen möchte, mache ich es auf meinem Computer, was nicht ideal ist.

Ich möchte eine Datei behalten, die meine aktuelle Version meines Docker-Bildes enthält (wie pom.xml).

Was soll ich tun, fügen Sie eine pom.xml in meinem Projekt für Versionierung und maven-release-plugin hinzu, fügen Sie eine einfache version.txt hinzu, mit der ich während meines Release-Prozesses aktualisiere?

Oder gibt es eine ähnliche "docker.version" Datei, die ich nicht weiß, um dies zu tun?

poste ich ein Beispiel für mein Projekt auf GitHub: https://github.com/Ameausoone/mongodb-docker-with-data

Antwort

3

Das erste, was ist es, eine bestimmte Repo für jedes Projekt, das Sie haben. Dies hilft, die Docker-Bilder nicht zu beschädigen, während sie zum Repository geschoben werden.

Sie können die Shell-Skripte/-Befehle im Pipelineskript verwenden, um alle hier genannten Befehle auszuführen.

Es gibt mehrere Möglichkeiten, wie Sie die Docker-Images an das Repository senden.

auf Zeitetikettieren basiert und Build-Nummer:

ein Beispiel für Auth-api, wo wir eine env Variable namens $ DOCKER_TAG in den jenkins und legen Sie es auf die Zeit der Build erstellen ist erstellt:

DOCKER_TAG: $(date +%Y%m%d).$BUILD_NUMBER 

$ BUILD_NUMBER wird als Teil von Jenkins Job zur Verfügung gestellt. Nun markieren Sie die Docker Bild wie folgt:

docker tag DOCKER_IMAGE auth-api/<DOCKER_IMAGE>:<DOCKER_TAG> 

(Vorausgesetzt, dass Sie die Docker Bild aufgebaut haben, und drücken Sie sie in das Repository nach Tagging- obigen Schritt.)

HINWEIS: Docker ermöglicht das Bild nur drücken wenn es mit dem REPO-NAME übereinstimmt)

Es hilft, das Datum und die Uhrzeit des Andockbilds zusammen mit der Build-Nummer herauszufinden. Dieses Image kann in verschiedenen Umgebungen wie dev, test, prod implementiert werden.

auf die Umwelt Tagging basiert

Tag der Docker Bild basierend auf dem Deployment-Umgebung, das heißt dev, test, prod. Konfigurieren Sie eine Umgebungsvariable in der Pipeline-Skript, mit withenv, die wie folgt aussehen kann:

docker tag DOCKER_IMAGE auth-api/<DOCKER_IMAGE>:$ENV 

Dies wird helfen, eine Errichtungs spezifische Docker Bilder zu haben.

Sie können sogar das Docker Bild markieren, basierend auf git commit. [Nicht persönlich getestet]

+0

Auch ich war „Mavenize“ einfach git-Tag oder jenkins Build-Nummer zu denken, zu verwenden, aber ja, ich werde diese einfach nutzen! Danke – Antoine