Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
На первый взгляд
Цель: Запуск прокси-сервера разработки в Docker
Время: 15 минут
Плагины: Разные
Необходимые условия: Установленный Docker
При использовании прокси-сервера разработки его можно запустить непосредственно на компьютере или в контейнере Docker. Запуск прокси-сервера разработки в Docker — отличный способ изолировать его от локальной среды. Он также предлагает единообразный способ использования Dev Proxy между вашим локальным компьютером и средами CI/CD.
Используйте образ Docker для Dev Proxy
Для удобства мы предоставляем готовый образ Docker с прокси-сервером разработки. Его можно использовать для запуска прокси-сервера разработки в контейнере Docker. Вы можете извлечь образ из реестра контейнеров GitHub, выполнив следующую команду:
docker pull ghcr.io/dotnet/dev-proxy:latest
Замечание
Чтобы попробовать последние предварительные версии функций, используйте бета-версию контейнера прокси-сервера разработки.
docker pull ghcr.io/dotnet/dev-proxy:beta
Если вы используете Dev Proxy в конвейере CI/CD, рекомендуется использовать конкретную версию образа вместо использования latest или beta. Таким образом, вы можете убедиться, что ваш поток не подвержен влиянию ломающих изменений, внесённых в последнюю версию Dev Proxy. Например, чтобы использовать прокси-сервер разработки версии 0.26.0, используйте следующую команду:
docker pull ghcr.io/dotnet/dev-proxy:0.26.0
Запуск контейнера прокси-сервера разработки
Чтобы запустить контейнер прокси-сервера разработки, используйте следующую команду:
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
После выполнения команды прокси-сервер разработки запускается автоматически и прослушивает трафик через порт 8000. Так как он работает в контейнере Docker, он не регистрируется в качестве системного прокси-сервера на узле для перехвата веб-запросов. Вместо этого необходимо вручную настроить системный прокси-сервер на узле или настроить прокси-сервер для приложения.
Интерактивным запуском контейнера (с помощью -it параметров) можно управлять прокси-сервером разработки из командной строки. Взаимодействие с прокси-сервером разработки полезно, например для запуска и остановки записи, очистки экрана и т. д. Если вы запускаете контейнер в фоновом режиме, вы по-прежнему можете управлять прокси-сервером разработки с помощью API прокси-сервера разработки.
Параметры
Docker прокси-сервера разработки содержит несколько параметров, которые можно использовать для настройки его поведения.
Порты
Изображение предоставляет следующие порты:
- 8000 — порт, на котором прокси-сервер разработки прослушивает входящий трафик.
- 8897 — порт, на котором прокси-сервер разработки предоставляет свой API. Его можно использовать для программного взаимодействия с прокси-сервером разработки.
Это важно
Не забудьте связать оба порта с хостом, чтобы можно было получить доступ к Dev Proxy с локального компьютера и использовать Dev Proxy Toolkit.
Объемы
Изображение отображает следующие тома:
-
/config — текущий рабочий каталог, из которого контейнер запускает прокси-сервер разработки. Если папка, которую вы сопоставили, содержит файл
devproxyrc.json, Dev Proxy автоматически использует его для настройки. - /home/devproxy/.config/dev-proxy/rootCert — папка, в которой dev Proxy хранит корневой сертификат. При сопоставлении дискового тома с вашим хостом, вы можете легко получить доступ к корневому сертификату и установить его в вашей системе или браузере.
Подсказка
Кроме того, чтобы сопоставить корневой сертификат с узлом, можно использовать API прокси-сервера разработки для скачивания открытого ключа корневого сертификата в формате PEM (расширенная почта конфиденциальности). Чтобы скачать сертификат, вызовите конечную точку GET http://127.0.0.1:8897/proxy/rootCertificate?format=crt .
Использование прокси-сервера разработки в Docker
При запуске контейнера прокси-сервера разработки он автоматически запускает прослушивание входящего трафика через порт 8000.
Конфигурация по умолчанию
Прокси-сервер разработки ищет devproxyrc.json файл в папке, сопоставленной с томом /config . Если он находит файл, он использует его для настройки. Если он не находит файл, он использует конфигурацию по умолчанию.
Настраиваемая конфигурация
Вы можете использовать настраиваемую конфигурацию для прокси-сервера разработки, создав devproxyrc.json файл в папке, которую вы сопоставляете с томом /config . Кроме того, можно указать файл конфигурации с помощью --config-file параметра при запуске прокси-сервера разработки. Например, чтобы использовать myconfig.json файл, используйте следующую команду:
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
Указанный файл конфигурации должен быть доступен из контейнера. Если используется относительный путь, он должен быть относительно тома /config .
Другие варианты
Если вы хотите использовать другие параметры, их можно указать так же, как при запуске прокси-сервера разработки непосредственно на компьютере. Например, чтобы указать URL-адреса для просмотра, используйте следующую команду:
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/*"