Udostępnij przez


Korzystanie z serwera proxy deweloperskiego w kontenerze platformy Docker

W przypadku korzystania z serwera proxy deweloperskiego możesz uruchomić go bezpośrednio na maszynie lub w kontenerze platformy Docker. Uruchamianie serwera proxy deweloperskiego na platformie Docker to doskonały sposób odizolowania go od środowiska lokalnego. Zapewnia również spójny sposób korzystania z Dev Proxy, czyli serwera proxy dla deweloperów, między maszyną lokalną a środowiskami CI (ciągłej integracji)/CD (ciągłego wdrażania).

Użycie obrazu Docker Dev Proxy

Dla Twojej wygody udostępniamy gotowy do użycia obraz Docker z proxy deweloperskim. Można go użyć do uruchamiania serwera proxy deweloperskiego w kontenerze platformy Docker. Obraz można ściągnąć z usługi GitHub Container Registry, używając następującego polecenia:

docker pull ghcr.io/dotnet/dev-proxy:latest

Uwaga

Aby wypróbować najnowsze funkcje w wersji zapoznawczej, użyj wersji beta kontenera Dev Proxy.

docker pull ghcr.io/dotnet/dev-proxy:beta

Jeśli używasz Dev Proxy w potoku CI/CD, rozważ użycie określonej wersji obrazu zamiast latest lub beta. Dzięki temu możesz upewnić się, że twój potok nie jest dotknięty przez żadne zmiany powodujące niezgodność wprowadzone w najnowszej wersji Dev Proxy. Aby na przykład użyć serwera proxy deweloperskiego w wersji 0.26.0, użyj następującego polecenia:

docker pull ghcr.io/dotnet/dev-proxy:0.26.0

Uruchom kontener serwera proxy deweloperskiego

Aby uruchomić kontener serwera proxy deweloperów, użyj następującego polecenia:

docker run \
    # remove the container when it exits
    --rm \
    # run the container interactively
    -it \
    # map Dev Proxy ports to the host
    -p 8000:8000 -p 8897:8897 \
    # map volumes to the host. Create the `cert` folder in the current working directory before running the command
    -v ${PWD}:/config -v ${PWD}/cert:/home/devproxy/.config/dev-proxy/rootCert \
    # specify the image to use
    ghcr.io/dotnet/dev-proxy:0.26.0

Po uruchomieniu polecenia serwer proxy deweloperów uruchamia się automatycznie i nasłuchuje ruchu na porcie 8000. Ponieważ jest on uruchomiony w kontenerze platformy Docker, nie jest on automatycznie rejestrowany jako serwer proxy systemu na hoście w celu przechwytywania żądań internetowych. Zamiast tego należy ręcznie skonfigurować serwer proxy systemu na hoście lub skonfigurować serwer proxy dla aplikacji.

Uruchamiając kontener interaktywnie (przy użyciu -it opcji), możesz kontrolować serwer proxy dev z poziomu wiersza polecenia. Interakcja z serwerem proxy deweloperów jest przydatna, na przykład w przypadku uruchamiania i zatrzymywania rejestrowania, czyszczenia ekranu itp. Jeśli uruchomisz kontener w tle, nadal możesz kontrolować serwer proxy deweloperów przy użyciu interfejsu API serwera proxy deweloperów.

Parametry

Docker proxy deweloperski zawiera kilka parametrów, których można użyć do dostosowywania jego zachowania.

Porty

Obraz uwidacznia następujące porty:

  • 8000 — port, na którym serwer proxy deweloperów nasłuchuje ruchu przychodzącego.
  • 8897 — port, na którym Dev Proxy udostępnia swój interfejs API. Można go użyć do programowej interakcji z serwerem proxy deweloperów.

Ważne

Pamiętaj, aby przypisać oba porty do hosta, aby uzyskać dostęp do Dev Proxy z komputera lokalnego i użyć Dev Proxy Toolkit.

Objętości

Obraz uwidacznia następujące woluminy:

  • /config — bieżący katalog roboczy, z którego kontener uruchamia Dev Proxy. Jeśli mapowy folder zawiera devproxyrc.json plik, serwer proxy deweloperów automatycznie używa go do skonfigurowania samego siebie.
  • /home/devproxy/.config/dev-proxy/rootCert — folder, w którym serwer proxy deweloperów przechowuje certyfikat główny. Mapując wolumin na hosta, można łatwo uzyskać dostęp do certyfikatu głównego i zainstalować go w systemie lub przeglądarce.

Wskazówka

Alternatywnie, aby przypisać certyfikat główny do hosta, możesz użyć Dev Proxy API do pobrania klucza publicznego certyfikatu głównego w formacie PEM (Privacy Enhanced Mail). Aby pobrać certyfikat, wywołaj GET http://127.0.0.1:8897/proxy/rootCertificate?format=crt endpoint.

Korzystanie z serwera proxy deweloperskiego na platformie Docker

Po uruchomieniu kontenera usługi Dev Proxy automatycznie uruchamia serwer proxy deweloperów nasłuchiwanie ruchu przychodzącego na porcie 8000.

Konfiguracja domyślna

Serwer proxy deweloperów devproxyrc.json szuka pliku w folderze mapowym /config na wolumin. Jeśli znajdzie plik, wykorzystuje go do skonfigurowania samego siebie. Jeśli plik nie zostanie odnaleźć, zostanie użyta konfiguracja domyślna.

Konfiguracja niestandardowa

Aby użyć niestandardowej konfiguracji dla proxy deweloperskiego, utwórz plik devproxyrc.json w folderze mapowanym na wolumin /config. Alternatywnie można określić plik konfiguracji przy użyciu parametru podczas uruchamiania --config-file serwera proxy deweloperskiego. Aby na przykład użyć myconfig.json pliku, użyj następującego polecenia:

docker run \
    # remove the container when it exits
    --rm \
    # run the container interactively
    -it \
    # map Dev Proxy ports to the host
    -p 8000:8000 -p 8897:8897 \
    # map volumes to the host. Create the `cert` folder in the current working directory before running the command
    -v ${PWD}:/config -v ${PWD}/cert:/home/devproxy/.config/dev-proxy/rootCert \
    # specify the image to use
    ghcr.io/dotnet/dev-proxy:0.26.0 \
    # specify the configuration file to use
    --config-file /config/myconfig.json

Określony plik konfiguracji musi być dostępny z kontenera. Jeśli używasz ścieżki względnej, musi być w odniesieniu do woluminu /config.

Inne opcje

Jeśli chcesz użyć innych opcji, możesz określić je w taki sam sposób, jak w przypadku uruchamiania serwera proxy deweloperskiego bezpośrednio na maszynie. Aby na przykład określić adresy URL do obejrzenia, użyj następującego polecenia:

docker run \
    # remove the container when it exits
    --rm \
    # run the container interactively
    -it \
    # map Dev Proxy ports to the host
    -p 8000:8000 -p 8897:8897 \
    # map volumes to the host. Create the `cert` folder in the current working directory before running the command
    -v ${PWD}:/config -v ${PWD}/cert:/home/devproxy/.config/dev-proxy/rootCert \
    # specify the image to use
    ghcr.io/dotnet/dev-proxy:0.26.0 \
    # specify the URLs to watch
    --urls-to-watch "https://example.com/*"