Bagikan melalui


Menggunakan Proksi Dev dalam kontainer Docker

Sekilas
Tujuan: Jalankan Proksi Dev di Docker
Waktu: 15 menit
Plugin: Berbagai
Prasyarat: Docker terinstal

Saat menggunakan Dev Proxy, Anda dapat memilih untuk menjalankannya langsung di komputer Anda atau di kontainer Docker. Menjalankan Dev Proxy di Docker adalah cara yang bagus untuk mengisolasinya dari lingkungan lokal Anda. Ini juga menawarkan cara yang konsisten untuk menggunakan Dev Proxy antara komputer lokal anda dan lingkungan CI/CD.

Gunakan gambar Docker Proksi Dev

Demi kenyamanan Anda, kami menyediakan gambar Docker yang siap digunakan dengan Dev Proxy. Anda dapat menggunakannya untuk menjalankan Dev Proxy dalam kontainer Docker. Anda dapat menarik gambar dari GitHub Container Registry, dengan menggunakan perintah berikut:

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

Nota

Untuk mencoba fitur pratinjau terbaru, gunakan versi beta kontainer Dev Proxy.

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

Jika Anda menggunakan Proksi Dev dalam alur CI/CD, pertimbangkan untuk menggunakan versi gambar tertentu, bukan latest atau beta. Dengan cara ini, Anda dapat memastikan bahwa proses kerja Anda tidak terpengaruh oleh perubahan yang merusak yang diperkenalkan dalam versi terbaru Dev Proxy. Misalnya, untuk menggunakan Dev Proxy versi 0.26.0, gunakan perintah berikut:

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

Memulai kontainer Proxy Dev

Untuk memulai kontainer Dev Proxy, gunakan perintah berikut:

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

Setelah Anda menjalankan perintah, Dev Proxy dimulai secara otomatis dan mendengarkan lalu lintas di port 8000. Karena berjalan dalam sebuah kontainer Docker, proses ini tidak otomatis terdaftar sebagai proksi sistem pada host untuk mengambil alih permintaan web. Sebagai gantinya, Anda perlu mengonfigurasi proksi sistem secara manual pada host Anda atau mengonfigurasi proksi untuk aplikasi Anda.

Dengan menjalankan kontainer secara interaktif (menggunakan -it opsi), Anda dapat mengontrol Dev Proxy dari baris perintah. Berinteraksi dengan Dev Proxy sangat membantu, misalnya, untuk memulai dan menghentikan perekaman, menghapus layar, dll. Jika Anda memulai kontainer di latar belakang, Anda masih dapat mengontrol Dev Proxy menggunakan DEV Proxy API.

Parameter-parameternya

Dev Proxy Docker berisi beberapa parameter yang dapat Anda gunakan untuk menyesuaikan perilakunya.

Pelabuhan

Gambar mengekspos port berikut:

  • 8000 - port tempat Dev Proxy mendengarkan lalu lintas masuk.
  • 8897 - port tempat Dev Proxy mengekspos API-nya. Anda dapat menggunakannya untuk berinteraksi dengan Dev Proxy secara terprogram.

Penting

Pastikan untuk memetakan kedua port ke host Anda, sehingga Anda dapat mengakses Dev Proxy dari komputer lokal Anda dan menggunakan Dev Proxy Toolkit.

Volumes

Gambar mengekspos volume berikut:

  • /config - direktori kerja saat ini tempat kontainer memulai Dev Proxy. Jika folder yang Anda petakan berisi sebuah file devproxyrc.json, Dev Proxy secara otomatis menggunakannya untuk mengonfigurasi sendiri.
  • /home/devproxy/.config/dev-proxy/rootCert - folder tempat Dev Proxy menyimpan sertifikat akarnya. Dengan memetakan volume ke host Anda, Anda dapat dengan mudah mengakses sertifikat akar dan menginstalnya di sistem atau browser Anda.

Petunjuk / Saran

Atau untuk memetakan sertifikat akar ke host Anda, Anda dapat menggunakan DEV Proxy API untuk mengunduh kunci publik sertifikat akar dalam format PEM (Privacy Enhanced Mail). Untuk mengunduh sertifikat, hubungi GET http://127.0.0.1:8897/proxy/rootCertificate?format=crt endpoint.

Menggunakan Dev Proxy di Docker

Saat Anda memulai kontainer Dev Proxy, kontainer tersebut secara otomatis mendengarkan lalu lintas masuk pada port 8000.

Konfigurasi bawaan

Dev Proxy mencari berkas devproxyrc.json di folder yang dipetakan ke volume /config. Jika menemukan file, ia akan menggunakannya untuk mengonfigurasi dirinya sendiri. Jika tidak menemukan file, sistem akan menggunakan konfigurasi default.

Konfigurasi kustom

Anda dapat menggunakan konfigurasi kustom untuk Dev Proxy dengan membuat devproxyrc.json file di folder yang Anda petakan ke /config volume. Atau, Anda dapat menentukan file konfigurasi menggunakan --config-file parameter saat memulai Dev Proxy. Misalnya, untuk menggunakan myconfig.json file, gunakan perintah berikut:

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

File konfigurasi yang Anda tentukan harus dapat diakses dari kontainer. Jika Anda menggunakan jalur relatif, jalur tersebut harus relatif terhadap /config volume.

Opsi lainnya

Jika Anda ingin menggunakan opsi lain, Anda dapat menentukannya dengan cara yang sama seperti saat menjalankan Dev Proxy langsung di komputer Anda. Misalnya, untuk menentukan URL yang akan ditonton, gunakan perintah berikut:

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

Lihat juga