Docker: Productieplatform
Deze documentatie maakt deel uit van de Node.js-gids. Bekijk de volledige gids hier: Hoe een Node.js-app te gebruiken en te implementeren met Docker.
Welkom bij de Stackhero-documentatie
Stackhero biedt een gebruiksklaar Docker cloud CaaS (Containers as a Service) platform, ontworpen voor snelle en betrouwbare containerdeployments:
- Zet uw containers direct in productie met slechts één
docker-compose up. Er is geen extra configuratie nodig: start gewoon uw containers.- Kies uw eigen domeinnaam, automatisch beveiligd met HTTPS (bijvoorbeeld: https://api.uw-bedrijf.com, https://www.uw-bedrijf.com of https://backoffice.uw-bedrijf.com).
- Profiteer van hoge prestaties en sterke beveiliging op een privé, dedicated infrastructuur.
- Voer updates uit met één klik voor eenvoudige, moeiteloze onderhoud.
Uw containers kunnen binnen ongeveer vijf minuten live in productie zijn. Stackhero beheert de infrastructuur, updates en beveiliging voor u, zodat u zich kunt richten op het leveren van uw applicaties. Lees meer over Docker CaaS cloud hosting.
Als u nog geen Stackhero for Docker service heeft, kunt u er eenvoudig een maken vanuit uw Stackhero-dashboard. Het wordt binnen ongeveer 2 minuten geactiveerd.
Als u nieuw bent bij Stackhero, kunt u de Docker-container cloud hosting een maand gratis proberen.
Bereid uw eerste implementatie naar productie voor
Voordat u uw app naar productie implementeert, moet u enkele configuratiebestanden voorbereiden:
- Kopieer
secrets/global.production.examplenaarsecrets/global.production. - Bewerk
secrets/global.productionen vervang<XXXXXX>.stackhero-network.comdoor uw Docker-service-hostnaam vanuit uw Stackhero-dashboard. - Kopieer
secrets/my-app.production.examplenaarsecrets/my-app.production. - Bewerk
secrets/my-app.productionen voeg uw inloggegevens in. - Werk
docker/docker-compose.production.ymlbij door<XXXXXX>.stackhero-network.comte vervangen door uw Docker-service-hostnaam.
Implementeren naar productie
Implementeren naar productie is eenvoudig: voer uit:
make production-deploy
Deze opdracht maakt een Docker-container, verplaatst uw projectgegevens en stuurt deze naar uw Docker-service in productie. Open uw browser en navigeer naar uw Docker-service-hostnaam (bijvoorbeeld, https://<XXXXXX>.stackhero-network.com). U zou uw REST API "Hello World" moeten zien antwoorden.
U kunt ook
make productiongebruiken, dat uw containers implementeert en realtime logs weergeeft.
Logs weergeven
Om uw productieomgeving te monitoren of problemen op te lossen, kunt u uw logs bekijken met deze opdrachten:
- Om live logs te streamen, voert u uit:
make production-logs-live - Om alle opgeslagen logs op te halen, voert u uit:
make production-logs - Om logs voor een specifieke dag op te halen (vervang
YYYY-MM-DDdoor de gewenste datum), voert u uit:make production-logs | grep "YYYY-MM-DD"
Domeinnamen aanpassen
Als u een andere domeinnaam wilt gebruiken in plaats van https://<XXXXXX>.stackhero-network.com, integreert Stackhero for Docker Traefik om domeinbeheer te vereenvoudigen. Traefik beheert HTTP-routing en TLS-versleuteling (HTTPS) voor u.
Hier zijn een paar voorbeelden om uw domeinnamen aan te passen:
-
Om
api.my-company.comte bedienen via uw containermy-appop poort 5000 met TLS-versleuteling, werkt u het bestanddocker/docker-compose.production.ymlbij door de sectielabelste vervangen door:labels: - "traefik.enable=true" # Traefik inschakelen om verkeer naar deze container te routeren - "traefik.http.routers.my-app.rule=Host(`api.my-company.com`)" # Definieer de host - "traefik.http.routers.my-app.tls.certresolver=letsencrypt" # Gebruik letsencrypt voor TLS-certificaten - "traefik.http.services.my-app.loadbalancer.server.port=5000" # Specificeer poort 5000 -
Om
my-company.comte bedienen via uw containermy-appop poort 5000 en alle verzoeken vanwww.my-company.comnaarmy-company.comte leiden, werkt u de sectielabelsin hetzelfde bestand bij met:labels: - "traefik.enable=true" - "traefik.http.routers.my-app.rule=Host(`my-company.com`) || Host(`www.my-company.com`)" # Beide domeinen opnemen - "traefik.http.routers.my-app.tls.certresolver=letsencrypt" - "traefik.http.services.my-app.loadbalancer.server.port=5000" # Specificeer poort 5000 # www.my-company.com omleiden naar my-company.com: - "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"
Vergeet niet de DNS voor
my-company.comenwww.my-company.comte configureren zodat elk als een CNAME naar uw Docker-service wijst ophttps://<XXXXXX>.stackhero-network.com.