Docker: Platforma produkcyjna
Ta dokumentacja jest częścią przewodnika Node.js. Pełny przewodnik znajdziesz tutaj: Jak używać i wdrażać aplikację Node.js z Dockerem.
👋 Witamy w dokumentacji Stackhero!
Stackhero oferuje gotowe do użycia rozwiązanie Docker cloud CaaS (Containers as a Service), które zapewnia wiele korzyści, w tym:
- Łatwe wdrażanie kontenerów do produkcji za pomocą prostego
docker-compose up.- Dostosowywana nazwa domeny zabezpieczona HTTPS (na przykład, https://api.twoja-firma.com, https://www.twoja-firma.com, https://backoffice.twoja-firma.com).
- Optymalna wydajność i solidne zabezpieczenia dzięki prywatnej i dedykowanej VM.
- Bezproblemowe aktualizacje za pomocą jednego kliknięcia.
Oszczędzaj czas i upraszczaj swoje życie: wystarczy 5 minut, aby wypróbować rozwiązanie Docker CaaS cloud hosting Stackhero i wdrożyć swoje kontenery do produkcji!
Jeśli nie masz jeszcze usługi Stackhero for Docker, możesz ją łatwo utworzyć z poziomu swojego dashboardu Stackhero. Zostanie aktywowana w ciągu około 2 minut.
Jeśli jesteś nowy w Stackhero, możesz wypróbować Docker container cloud hosting za darmo przez miesiąc.
Przygotowanie pierwszego wdrożenia do produkcji
Przed wdrożeniem aplikacji do produkcji musisz przygotować kilka plików konfiguracyjnych:
- Skopiuj
secrets/global.production.exampledosecrets/global.production. - Edytuj
secrets/global.productioni zamień<XXXXXX>.stackhero-network.comna nazwę hosta swojej usługi Docker z dashboardu Stackhero. - Skopiuj
secrets/my-app.production.exampledosecrets/my-app.production. - Edytuj
secrets/my-app.productioni wprowadź swoje dane uwierzytelniające. - Zaktualizuj
docker/docker-compose.production.yml, zastępując<XXXXXX>.stackhero-network.comnazwą hosta swojej usługi Docker.
Wdrożenie do produkcji
Wdrożenie do produkcji jest proste: uruchom:
make production-deploy
Ta komenda tworzy kontener Dockera, przesyła dane Twojego projektu i wysyła je do Twojej usługi Docker w produkcji. Otwórz przeglądarkę i przejdź do nazwy hosta swojej usługi Docker (na przykład, https://<XXXXXX>.stackhero-network.com). Powinieneś zobaczyć, jak Twoje API REST odpowiada "Hello World".
Możesz również użyć
make production, który wdraża Twoje kontenery i wyświetla logi w czasie rzeczywistym.
Wyświetlanie logów
Aby monitorować swoje środowisko produkcyjne lub rozwiązywać problemy, możesz przeglądać swoje logi za pomocą tych komend:
- Aby strumieniować logi na żywo, uruchom:
make production-logs-live - Aby pobrać wszystkie zapisane logi, uruchom:
make production-logs - Aby pobrać logi z konkretnego dnia (zamień
YYYY-MM-DDna żądaną datę), uruchom:make production-logs | grep "YYYY-MM-DD"
Dostosowanie nazw domen
Jeśli chcesz użyć innej nazwy domeny zamiast https://<XXXXXX>.stackhero-network.com, Stackhero for Docker integruje Traefik, aby uprościć zarządzanie domenami. Traefik obsługuje routing HTTP i szyfrowanie TLS (HTTPS) za Ciebie.
Oto kilka przykładów, jak dostosować swoje nazwy domen:
-
Aby obsługiwać
api.my-company.comza pośrednictwem swojego konteneramy-appna porcie 5000 z szyfrowaniem TLS, zaktualizuj plikdocker/docker-compose.production.yml, zastępując sekcjęlabelsnastępującymi wartościami:labels: - "traefik.enable=true" # Włącz Traefik, aby kierować ruch do tego kontenera - "traefik.http.routers.my-app.rule=Host(`api.my-company.com`)" # Zdefiniuj hosta - "traefik.http.routers.my-app.tls.certresolver=letsencrypt" # Użyj letsencrypt dla certyfikatów TLS - "traefik.http.services.my-app.loadbalancer.server.port=5000" # Określ port 5000 -
Aby obsługiwać
my-company.comza pośrednictwem swojego konteneramy-appna porcie 5000 i przekierować wszystkie żądania zwww.my-company.comdomy-company.com, zaktualizuj sekcjęlabelsw tym samym pliku następującymi wartościami:labels: - "traefik.enable=true" - "traefik.http.routers.my-app.rule=Host(`my-company.com`) || Host(`www.my-company.com`)" # Uwzględnij oba domeny - "traefik.http.routers.my-app.tls.certresolver=letsencrypt" - "traefik.http.services.my-app.loadbalancer.server.port=5000" # Określ port 5000 # Przekieruj www.my-company.com do 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"
Nie zapomnij skonfigurować DNS dla
my-company.comiwww.my-company.com, aby każdy wskazywał jako CNAME na Twoją usługę Docker pod adresemhttps://<XXXXXX>.stackhero-network.com.