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) platformą, sukurtą greitam ir patikimam konteinerių diegimui:

  • Diekite į gamybinę aplinką naudodami vieną komandą docker-compose up. Jokios papildomos konfigūracijos nereikia: tiesiog paleiskite savo konteinerius.
  • Pasirinkite savo domeno vardą, kuris automatiškai apsaugomas HTTPS (pavyzdžiui: https://api.jusu-imone.com, https://www.jusu-imone.com arba https://backoffice.jusu-imone.com).
  • Naudokitės aukštu našumu ir stipria apsauga privačioje, dedikuotoje infrastruktūroje.
  • Atnaujinimus pritaikykite vienu paspaudimu – paprastai ir be papildomų pastangų.

Jūsų konteineriai gali veikti gamybinėje aplinkoje maždaug per penkias minutes. Stackhero pasirūpina infrastruktūra, atnaujinimais ir saugumu už jus, kad galėtumėte susitelkti į savo aplikacijų kūrimą. Plačiau skaitykite apie Docker CaaS cloud hosting.

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.