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 documentatie van Stackhero!
Stackhero biedt een kant-en-klare Docker cloud CaaS (Containers as a Service) oplossing die tal van voordelen biedt, waaronder:
- Zet eenvoudig uw containers in productie met slechts een
docker-compose up.- Aanpasbare domeinnaam beveiligd met HTTPS (bijvoorbeeld, https://api.uw-bedrijf.com, https://www.uw-bedrijf.com, https://backoffice.uw-bedrijf.com).
- Optimale prestaties en robuuste beveiliging aangedreven door een privé en toegewijde VM.
- Moeiteloze updates met slechts één klik.
Bespaar tijd en vereenvoudig uw leven: het kost slechts 5 minuten om de Docker CaaS cloud hosting oplossing van Stackhero te proberen en uw containers in productie te zetten!
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.