Freigeben über


Verwenden des Dev-Proxys in einem Docker-Container

Wenn Sie Dev Proxy verwenden, können Sie es direkt auf Ihrem Computer oder in einem Docker-Container ausführen. Das Ausführen von Dev Proxy in Docker ist eine hervorragende Möglichkeit, ihn aus Ihrer lokalen Umgebung zu isolieren. Es bietet Ihnen auch eine konsistente Möglichkeit, Dev Proxy zwischen Ihrem lokalen Computer und CI/CD-Umgebungen zu verwenden.

Verwenden des Dev-Proxy-Docker-Images

Aus Gründen Der Einfachheit bieten wir ein einsatzbereites Docker-Image mit Dev Proxy. Sie können ihn verwenden, um Dev Proxy in einem Docker-Container auszuführen. Sie können das Image aus der GitHub-Containerregistrierung abrufen, indem Sie den folgenden Befehl verwenden:

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

Hinweis

Verwenden Sie die Betaversion des Dev Proxy-Containers, um die neuesten Vorschaufeatures zu testen.

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

Wenn Sie Dev Proxy in einer CI/CD-Pipeline verwenden, sollten Sie eine spezifische Version des Images verwenden, anstatt latest oder beta. Auf diese Weise können Sie sicherstellen, dass Ihre Pipeline nicht von den in der neuesten Version von Dev Proxy eingeführten Änderungen betroffen ist. Wenn Sie beispielsweise Dev Proxy Version 0.26.0 verwenden möchten, verwenden Sie den folgenden Befehl:

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

Starten des Dev Proxy-Containers

Verwenden Sie den folgenden Befehl, um den Dev Proxy-Container zu starten:

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

Nachdem Sie den Befehl ausgeführt haben, wird Dev Proxy automatisch gestartet und überwacht den Datenverkehr auf Port 8000. Da sie in einem Docker-Container ausgeführt wird, wird sie nicht automatisch als Systemproxy auf dem Host registriert, um Webanforderungen abzufangen. Stattdessen müssen Sie den Systemproxy auf Ihrem Host manuell konfigurieren oder den Proxy für Ihre Anwendung konfigurieren.

Durch interaktives Ausführen des Containers (mithilfe der -it Optionen) können Sie Dev Proxy über die Befehlszeile steuern. Die Interaktion mit Dev Proxy ist beispielsweise hilfreich, um die Aufzeichnung zu starten und zu beenden, den Bildschirm zu löschen usw. Wenn Sie den Container im Hintergrund starten, können Sie den Dev-Proxy weiterhin mithilfe der Dev Proxy-API steuern.

Parameter

Der Dev-Proxy Docker enthält mehrere Parameter, mit denen Sie das Verhalten anpassen können.

Häfen

Das Bild macht die folgenden Ports verfügbar:

  • 8000 – Der Port, an dem Dev-Proxy auf eingehenden Datenverkehr lauscht.
  • 8897 – Der Port, auf dem Dev Proxy seine API verfügbar macht. Sie können es verwenden, um programmgesteuert mit Dev Proxy zu interagieren.

Wichtig

Stellen Sie sicher, dass Sie beide Ports Ihrem Host zuordnen, damit Sie von Ihrem lokalen Computer aus auf Dev Proxy zugreifen und Dev Proxy Toolkit verwenden können.

Volumes

Das Bild zeigt die folgenden Volumina:

  • /config – das aktuelle Arbeitsverzeichnis, aus dem der Container Dev Proxy startet. Wenn der ordner, den Sie zuordnen, eine devproxyrc.json Datei enthält, verwendet Dev Proxy diese automatisch, um sich selbst zu konfigurieren.
  • /home/devproxy/.config/dev-proxy/rootCert – der Ordner, in dem Dev Proxy sein Stammzertifikat speichert. Indem Sie das Volume ihrem Host zuordnen, können Sie auf einfache Weise auf das Stammzertifikat zugreifen und es in Ihrem System oder Browser installieren.

Tipp

Alternativ zum Zuordnen des Stammzertifikats zu Ihrem Host können Sie die Dev Proxy-API verwenden, um den öffentlichen Schlüssel des Stammzertifikats im PEM-Format (Privacy Enhanced Mail) herunterzuladen. Rufen Sie den Endpunkt auf, um das GET http://127.0.0.1:8897/proxy/rootCertificate?format=crt Zertifikat herunterzuladen.

Verwenden des Dev-Proxys in Docker

Wenn Sie den Dev Proxy-Container starten, startet er automatisch die Dev Proxy-Überwachung auf eingehenden Datenverkehr auf Port 8000.

Standardkonfiguration

Dev Proxy sucht nach der devproxyrc.json Datei im Ordner, den Sie dem /config Volume zuordnen. Wenn sie die Datei findet, wird sie verwendet, um sich selbst zu konfigurieren. Wenn die Datei nicht gefunden wird, wird die Standardkonfiguration verwendet.

Benutzerdefinierte Konfiguration

Sie können benutzerdefinierte Konfiguration für Dev Proxy verwenden, indem Sie die devproxyrc.json Datei im Ordner erstellen, den Sie dem /config Volume zuordnen. Alternativ können Sie die Konfigurationsdatei mithilfe des --config-file Parameters beim Starten von Dev Proxy angeben. Um beispielsweise die myconfig.json Datei zu verwenden, verwenden Sie den folgenden Befehl:

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

Auf die angegebene Konfigurationsdatei muss über den Container zugegriffen werden kann. Wenn Sie einen relativen Pfad verwenden, muss er relativ zum /config Volume sein.

Weitere Optionen

Wenn Sie andere Optionen verwenden möchten, können Sie diese auf die gleiche Weise angeben wie beim direkten Ausführen von Dev Proxy auf Ihrem Computer. Wenn Sie beispielsweise die zu überwachenden URLs angeben möchten, verwenden Sie den folgenden Befehl:

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/*"