Docker: Produktionsplattform
Diese Dokumentation ist Teil des Node.js-Leitfadens. Den vollständigen Leitfaden finden Sie hier: Wie man eine Node.js-App mit Docker nutzt und bereitstellt.
Willkommen in der Stackhero-Dokumentation
Stackhero bietet eine einsatzbereite Docker Cloud CaaS (Containers as a Service) Plattform, die für schnelle und zuverlässige Container-Bereitstellungen entwickelt wurde:
- Deployment in die Produktion mit nur einem
docker-compose up. Es ist keine zusätzliche Konfiguration erforderlich: Starten Sie einfach Ihre Container.- Wählen Sie Ihren eigenen Domainnamen, der automatisch per HTTPS gesichert wird (zum Beispiel: https://api.ihr-unternehmen.com, https://www.ihr-unternehmen.com oder https://backoffice.ihr-unternehmen.com).
- Profitieren Sie von hoher Performance und robuster Sicherheit auf einer privaten, dedizierten Infrastruktur.
- Updates können mit nur einem Klick angewendet werden – für eine einfache und unkomplizierte Wartung.
Ihre Container sind in etwa fünf Minuten produktiv einsatzbereit. Stackhero übernimmt für Sie das Infrastrukturmanagement, Updates und die Sicherheit, sodass Sie sich ganz auf die Entwicklung Ihrer Anwendungen konzentrieren können. Erfahren Sie mehr über das Docker CaaS Cloud Hosting.
Wenn Sie noch keinen Stackhero for Docker-Dienst haben, können Sie einen einfach über Ihr Stackhero-Dashboard erstellen. Er wird innerhalb von etwa 2 Minuten aktiviert.
Wenn Sie neu bei Stackhero sind, können Sie das Docker-Container-Cloud-Hosting einen Monat lang kostenlos ausprobieren.
Bereiten Sie Ihre erste Bereitstellung in der Produktion vor
Bevor Sie Ihre App in der Produktion bereitstellen, müssen Sie einige Konfigurationsdateien vorbereiten:
- Kopieren Sie
secrets/global.production.examplenachsecrets/global.production. - Bearbeiten Sie
secrets/global.productionund ersetzen Sie<XXXXXX>.stackhero-network.comdurch den Hostnamen Ihres Docker-Dienstes aus Ihrem Stackhero-Dashboard. - Kopieren Sie
secrets/my-app.production.examplenachsecrets/my-app.production. - Bearbeiten Sie
secrets/my-app.productionund fügen Sie Ihre Anmeldeinformationen ein. - Aktualisieren Sie
docker/docker-compose.production.yml, indem Sie<XXXXXX>.stackhero-network.comdurch den Hostnamen Ihres Docker-Dienstes ersetzen.
In der Produktion bereitstellen
Die Bereitstellung in der Produktion ist einfach: führen Sie aus:
make production-deploy
Dieser Befehl erstellt einen Docker-Container, überträgt Ihre Projektdaten und sendet sie an Ihren Docker-Dienst in der Produktion. Öffnen Sie Ihren Browser und navigieren Sie zu Ihrem Docker-Dienst-Hostname (z. B. https://<XXXXXX>.stackhero-network.com). Sie sollten sehen, dass Ihre REST-API "Hello World" antwortet.
Sie können auch
make productionverwenden, das Ihre Container bereitstellt und Echtzeitprotokolle anzeigt.
Protokolle anzeigen
Um Ihre Produktionsumgebung zu überwachen oder Probleme zu beheben, können Sie Ihre Protokolle mit diesen Befehlen anzeigen:
- Um Live-Protokolle zu streamen, führen Sie aus:
make production-logs-live - Um alle gespeicherten Protokolle abzurufen, führen Sie aus:
make production-logs - Um Protokolle für einen bestimmten Tag abzurufen (ersetzen Sie
YYYY-MM-DDdurch das gewünschte Datum), führen Sie aus:make production-logs | grep "YYYY-MM-DD"
Domainnamen anpassen
Wenn Sie einen anderen Domainnamen als https://<XXXXXX>.stackhero-network.com verwenden möchten, integriert Stackhero for Docker Traefik, um die Domainverwaltung zu vereinfachen. Traefik übernimmt das HTTP-Routing und die TLS-Verschlüsselung (HTTPS) für Sie.
Hier sind einige Beispiele, um Ihre Domainnamen anzupassen:
-
Um
api.my-company.comüber Ihren Containermy-appauf Port 5000 mit TLS-Verschlüsselung bereitzustellen, aktualisieren Sie die Dateidocker/docker-compose.production.yml, indem Sie den Abschnittlabelsersetzen mit:labels: - "traefik.enable=true" # Traefik aktivieren, um den Verkehr zu diesem Container zu leiten - "traefik.http.routers.my-app.rule=Host(`api.my-company.com`)" # Host definieren - "traefik.http.routers.my-app.tls.certresolver=letsencrypt" # Letsencrypt für TLS-Zertifikate verwenden - "traefik.http.services.my-app.loadbalancer.server.port=5000" # Port 5000 angeben -
Um
my-company.comüber Ihren Containermy-appauf Port 5000 bereitzustellen und alle Anfragen vonwww.my-company.comzumy-company.comumzuleiten, aktualisieren Sie den Abschnittlabelsin derselben Datei mit:labels: - "traefik.enable=true" - "traefik.http.routers.my-app.rule=Host(`my-company.com`) || Host(`www.my-company.com`)" # Beide Domains einschließen - "traefik.http.routers.my-app.tls.certresolver=letsencrypt" - "traefik.http.services.my-app.loadbalancer.server.port=5000" # Port 5000 angeben # www.my-company.com zu my-company.com umleiten: - "traefik.http.routers.my-app.middlewares=redirect-www" - "traefik.http.middlewares.redirect-www.redirectregex.regex=^https://www.my-company.com/(.*)" - "traefik.http.middlewares.redirect-www.redirectregex.replacement=https://my-company.com/$${1}" - "traefik.http.middlewares.redirect-www.redirectregex.permanent=true"
Vergessen Sie nicht, das DNS für
my-company.comundwww.my-company.comso zu konfigurieren, dass jeder als CNAME auf Ihren Docker-Dienst unterhttps://<XXXXXX>.stackhero-network.comzeigt.