2017-09-02 3 views
1

Ich habe ein GitLab-Repository, in dem ich eine node.js App mit Express habe, möchte ich diesen Code auf meinem Ubuntu-Server "deploy" verwenden, um den Express-Server nicht nur lokal, sondern lokal zu verwenden Ich möchte stattdessen node.js installieren. Ich möchte versuchen, Docker zu verwenden. Ich habe viel über Docker gelesen, und ich hatte die grundlegende Sache verstanden. Meine Frage ist dies, wenn ich Docker auf meinem Ubuntu Server installiere, wie kann ich meinen Code auf Docker "deployen", wenn ich mein Repository einschalte?Push-Code zu remote Docker

+0

Es gibt eine ähnliche Frage in Software-Empfehlungen -> https://softwarerecs.stackexchange.com/questions/44768/heroku-like-deployment-git-push-and-application-management-platform –

Antwort

2

Grundsätzlich müssen Sie den Prozess in zwei Schritte aufteilen. Einer dockt Ihre App an, was bedeutet, dass Sie ein Docker-Image für Ihr Repository erstellen müssen. Der zweite Schritt besteht darin, dass Ihr Server dieses Image verwendet und möglicherweise den Prozess bei Push automatisiert. Also würde ich so etwas tun:

  1. Dockerize Ihre App. Dies bedeutet, dass Sie ein Dockerfile haben, in dem Sie ein Image erstellen, das Ihre App enthält, es ausführt und möglicherweise einen Port exportiert, um es extern zu verwenden.
  2. Führen Sie das Image auf Ihrem Server aus. Ihr Server muss docker installiert haben und in der Lage sein, das richtige Bild zu erhalten (mehr dazu später). Wenn nur ein Bild verwendet wird, können Sie einfach einen einfachen docker run Befehl verwenden. Wenn es mehr Teile gibt, wie eine Datenbank oder ein Webserver, würde ich empfehlen, zu verwenden.
  3. Stellen Sie das Bild auf Ihrem Server zur Verfügung. Sie haben hier mehrere Möglichkeiten. Sie können publish Ihr Bild zu einem Docker-Repository (privat oder öffentlich), oder Sie können einfach das Repository auf Ihrem Server herunterladen, und das Image dort erstellen.
  4. Schließlich müssen Sie diese Schritte binden. Dazu benötigen Sie eine hook, die auf Commits auf dem Server reagiert, wo Sie einen Befehl an den Server senden, um das Image abzurufen/zu erstellen und die neuere Version auszuführen.

Sie haben eine Menge Flexibilität, wie Sie dies tatsächlich tun. Ich würde mit einem einfacheren Prozess beginnen, bei dem Sie das Image auf Ihrem Server erstellen und darauf basierend auf Ihren Anforderungen aufbauen.

+0

Also, Dockerize die App bedeutet, erstellen Sie die DockerFile, und dann den Server, die Docker installiert haben, mit dem Haken zu jedem Push, ziehen Sie den Code und bauen Sie die DockerFile wieder und wieder und wieder, es ist richtig? – Piero

+1

yeah von dockerize Ich meine, fügen Sie eine 'Dockerfile' hinzu und machen Sie Ihre Anwendung als Docker-Image ausführbar. Dann bringt Sie der Haken die neueste Version und Sie können das Bild einfach in Ihrem Server ausführen. Ich denke, dass das Setup am einfachsten ist. –

0

Dokku ist eine Docker-basierte PaaS-Plattform, die git push Bereitstellungen bietet. Es unterstützt Heroku Buildpacks, um eine Anwendung oder benutzerdefinierte Dockerfile deployments zu erstellen.

Verwandte Themen