Docker: Gamybos platforma

Ši dokumentacija yra Node.js vadovo dalis. Visą vadovą rasite čia: Kaip naudoti ir diegti Node.js programą su Docker.

👋 Sveiki atvykę į Stackhero dokumentaciją!

Stackhero siūlo paruoštą naudoti Docker cloud CaaS (Containers as a Service) sprendimą, kuris suteikia daugybę privalumų, įskaitant:

  • Lengvai diekite savo konteinerius į gamybą su paprastu docker-compose up.
  • Pritaikomas domeno vardas su HTTPS apsauga (pavyzdžiui, https://api.jusu-imone.com, https://www.jusu-imone.com, https://backoffice.jusu-imone.com).
  • Optimali veikla ir tvirta apsauga naudojant privačią ir dedikuotą VM.
  • Paprasti atnaujinimai vienu paspaudimu.

Taupykite laiką ir supaprastinkite savo gyvenimą: tereikia 5 minučių išbandyti Stackhero Docker CaaS cloud hosting sprendimą ir diegti savo konteinerius į gamybą!

Jei dar neturite Stackhero for Docker paslaugos, galite ją lengvai sukurti iš savo Stackhero prietaisų skydelio. Ji bus aktyvuota per maždaug 2 minutes.

Jei esate naujas Stackhero vartotojas, galite išbandyti Docker konteinerių debesų talpinimą nemokamai mėnesį.

Prieš diegdami savo programą į gamybą, turite paruošti keletą konfigūracijos failų:

  1. Nukopijuokite secrets/global.production.example į secrets/global.production.
  2. Redaguokite secrets/global.production ir pakeiskite <XXXXXX>.stackhero-network.com į savo Docker paslaugos pagrindinį vardą iš savo Stackhero prietaisų skydelio.
  3. Nukopijuokite secrets/my-app.production.example į secrets/my-app.production.
  4. Redaguokite secrets/my-app.production ir įveskite savo prisijungimo duomenis.
  5. Atnaujinkite docker/docker-compose.production.yml, pakeisdami <XXXXXX>.stackhero-network.com į savo Docker paslaugos pagrindinį vardą.

Diegimas į gamybą yra paprastas: vykdykite:

make production-deploy

Ši komanda sukuria Docker konteinerį, perkelia jūsų projekto duomenis ir siunčia juos į jūsų Docker paslaugą gamyboje. Atidarykite naršyklę ir naršykite į savo Docker paslaugos pagrindinį vardą (pvz., https://<XXXXXX>.stackhero-network.com). Turėtumėte matyti, kaip jūsų REST API atsako "Hello World".

Taip pat galite naudoti make production, kuris diegia jūsų konteinerius ir rodo realaus laiko žurnalus.

Norėdami stebėti savo gamybos aplinką arba spręsti problemas, galite peržiūrėti savo žurnalus naudodami šias komandas:

  • Norėdami transliuoti tiesioginius žurnalus, vykdykite: make production-logs-live
  • Norėdami gauti visus saugomus žurnalus, vykdykite: make production-logs
  • Norėdami gauti konkrečios dienos žurnalus (pakeiskite YYYY-MM-DD norima data), vykdykite: make production-logs | grep "YYYY-MM-DD"

Jei norite naudoti kitą domeno vardą vietoj https://<XXXXXX>.stackhero-network.com, Stackhero for Docker integruoja Traefik, kad supaprastintų domenų valdymą. Traefik tvarko HTTP maršrutizavimą ir TLS šifravimą (HTTPS) už jus.

Štai keletas pavyzdžių, kaip pritaikyti savo domenų vardus:

  • Norėdami aptarnauti api.my-company.com per savo konteinerį my-app 5000 prievade su TLS šifravimu, atnaujinkite docker/docker-compose.production.yml failą, pakeisdami labels skyrių:

        labels:
          - "traefik.enable=true" # Įjungti Traefik, kad nukreiptų srautą į šį konteinerį
          - "traefik.http.routers.my-app.rule=Host(`api.my-company.com`)" # Apibrėžti pagrindinį vardą
          - "traefik.http.routers.my-app.tls.certresolver=letsencrypt" # Naudoti letsencrypt TLS sertifikatams
          - "traefik.http.services.my-app.loadbalancer.server.port=5000" # Nurodyti 5000 prievadą
    
  • Norėdami aptarnauti my-company.com per savo konteinerį my-app 5000 prievade ir nukreipti visas užklausas iš www.my-company.com į my-company.com, atnaujinkite labels skyrių tame pačiame faile:

        labels:
          - "traefik.enable=true"
          - "traefik.http.routers.my-app.rule=Host(`my-company.com`) || Host(`www.my-company.com`)" # Įtraukti abu domenus
          - "traefik.http.routers.my-app.tls.certresolver=letsencrypt"
          - "traefik.http.services.my-app.loadbalancer.server.port=5000" # Nurodyti 5000 prievadą
    
          # Nukreipti www.my-company.com į 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"
    

Nepamirškite sukonfigūruoti DNS my-company.com ir www.my-company.com, kad kiekvienas nurodytų kaip CNAME į jūsų Docker paslaugą https://<XXXXXX>.stackhero-network.com.