Compartir a través de


Uso del proxy de desarrollo en un contenedor de Docker

Al usar el proxy de desarrollo, puede optar por ejecutarlo directamente en la máquina o en un contenedor de Docker. Ejecutar proxy de desarrollo en Docker es una excelente manera de aislarlo del entorno local. También ofrece una manera coherente de usar el proxy de desarrollo entre el equipo local y los entornos de CI/CD.

Usar la imagen de Docker del proxy de desarrollo

Para mayor comodidad, proporcionamos una imagen de Docker lista para usar con el proxy de desarrollo. Puede usarlo para ejecutar el proxy de desarrollo en un contenedor de Docker. Puede extraer la imagen de GitHub Container Registry mediante el comando siguiente:

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

Nota:

Para probar las características de versión preliminar más recientes, use la versión beta del contenedor de proxy de desarrollo.

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

Si usa dev Proxy en una canalización de CI/CD, considere la posibilidad de usar una versión específica de la imagen, en lugar de latest o beta. De este modo, puede asegurarse de que su pipeline no se vea afectado por los cambios importantes introducidos en la versión más reciente de Dev Proxy. Por ejemplo, para usar la versión 0.26.0 del proxy de desarrollo, use el siguiente comando:

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

Iniciar el contenedor del proxy de desarrollo

Para iniciar el contenedor de proxy de desarrollo, use el siguiente comando:

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

Después de ejecutar el comando, el proxy de desarrollo se inicia automáticamente y escucha el tráfico en el puerto 8000. Puesto que se ejecuta en un contenedor de Docker, no se registra automáticamente como proxy del sistema en el host para interceptar las solicitudes web. En su lugar, debe configurar manualmente el proxy del sistema en el host o configurar el proxy para la aplicación.

Al ejecutar el contenedor de forma interactiva (mediante las -it opciones), puede controlar dev Proxy desde la línea de comandos. La interacción con Dev Proxy es útil, por ejemplo, para iniciar y detener la grabación, borrar la pantalla, etc. Si inicia el contenedor en segundo plano, aún puede controlar Dev Proxy mediante la API de Dev Proxy.

Parámetros

El Docker del proxy de desarrollo contiene varios parámetros que puede usar para personalizar su comportamiento.

Puertos

La imagen expone los siguientes puertos:

  • 8000 : el puerto en el que el proxy de desarrollo escucha el tráfico entrante.
  • 8897 : el puerto en el que el proxy de desarrollo expone su API. Puede usarlo para interactuar con Dev Proxy de manera programática.

Importante

Asegúrese de asignar ambos puertos al host para que pueda acceder al proxy de desarrollo desde la máquina local y usar el Kit de herramientas de proxy de desarrollo.

Volúmenes

La imagen expone los siguientes volúmenes:

  • /config : el directorio de trabajo actual desde el que el contenedor inicia el proxy de desarrollo. Si la carpeta que asigna contiene un archivo devproxyrc.json, Proxy de desarrollo lo usa automáticamente para configurarse a sí mismo.
  • /home/devproxy/.config/dev-proxy/rootCert : la carpeta en la que dev Proxy almacena su certificado raíz. Al asignar el volumen a su host, puede acceder fácilmente al certificado raíz e instalarlo en su sistema o navegador.

Sugerencia

Como alternativa a asignar el certificado raíz al host, puede usar la API de Proxy de desarrollo para descargar la clave pública del certificado raíz en el formato PEM (Correo mejorado de privacidad). Para descargar el certificado, llame al GET http://127.0.0.1:8897/proxy/rootCertificate?format=crt punto de conexión.

Uso del proxy de desarrollo en Docker

Al iniciar el contenedor Dev Proxy, este automáticamente comienza a escuchar el tráfico entrante en el puerto 8000.

Configuración predeterminada

Dev Proxy busca el archivo devproxyrc.json en la carpeta que asignas al volumen /config. Si encuentra el archivo, lo usa para configurarse a sí mismo. Si no encuentra el archivo, usa la configuración predeterminada.

Configuración personalizada

Puede usar una configuración personalizada para el proxy de desarrollo creando el archivo devproxyrc.json en la carpeta que se asigna a la unidad /config. Como alternativa, puede especificar el archivo de configuración mediante el parámetro --config-file al iniciar Dev Proxy. Por ejemplo, para usar el myconfig.json archivo, use el siguiente comando:

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

El archivo de configuración que especifique debe ser accesible desde el contenedor. Si usa una ruta de acceso relativa, debe ser relativa al volumen /config.

Otras opciones

Si desea usar otras opciones, puede especificarlas de la misma manera que lo haría al ejecutar proxy de desarrollo directamente en el equipo. Por ejemplo, para especificar las direcciones URL que se van a inspeccionar, use el siguiente comando:

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