Panggilan API merentas bekas Docker
P粉764003519
P粉764003519 2023-08-29 19:43:11
0
1
529
<p>Saya cuba menggunakan API yang disediakan daripada satu bekas docker (katakan <code>container_A</code>) untuk mengakses bekas lain (<code>container_B</code>). Kedua-dua bekas ini berada dalam rangkaian Docker yang sama. Sebelum menambah Docker, saya sudah tentu akan membuat panggilan API ke <code>http://localhost:{app_port}/{endpoint}</code> dan sekarang saya telah Dockerized aplikasi, setiap perkhidmatan berada dalam Running in a Bekas Docker, saya tahu daripada membaca soalan dan tapak web lain bahawa anda perlu menggunakan alias bekas itu jika mereka berada pada rangkaian yang sama, atau nama perkhidmatan jika menggunakan <code>docker compose</code> ;http://container_A:8000/books</code>. Saya telah melakukan ini tetapi ia tidak berfungsi. Saya mengkonfigurasi CORS dalam semua perkhidmatan dan juga cuba mengakses titik akhir dari dalam <em>Klien REST</em> (iaitu sambungan VSCode seperti Posman) untuk melihat sama ada ia berjaya, dan ia berjaya. Saya juga melakukan pemetaan port/dedahan pelabuhan. </p> <p>Hanya untuk memberikan sedikit lagi latar belakang, saya ingin menggunakan API daripada satu bekas Docker yang mengandungi aplikasi Node.js, untuk mengakses bekas lain yang mengandungi aplikasi React. </p> <p>Ada idea tentang mengapa ini tidak berkesan? </p>
P粉764003519
P粉764003519

membalas semua(1)
P粉956441054

Terima kasih kepada komen @DavidMaze, saya mula mencubanya localhost 而不是 React 应用程序容器的名称,因为显然 React 在浏览器中运行。在我的情况下,每个容器的 URL 看起来像这样:http://containerName:port,当它们之间进行请求时,我会使用该 URL(因为所有这些容器都在同一个 Docker 网络中),但是每当我想从 React 容器发出请求时,我会使用 http//localhost:port.

  • containerName ialah nama bekas untuk permohonan anda. Contohnya: http://webapp:3000
  • port ialah port yang terdedah. Contohnya: 3000

Sunting untuk menambah lebih banyak maklumat berguna jika perlu.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan