Pengikatan port Pycharm Docker

Saya menjalankan aplikasi flask dalam container Docker jadi saya perlu mengikat port host dan container (dalam hal ini port 5000 di keduanya).

Menjalankan perintah ini:

docker run -v //c/Users/Nicholas/PycharmProjects/flask_tutorial:/opt/project -e "FLASK_APP=/opt/project/flaskr.py" -p 0.0.0.0:5000:5000 flask flask run --host=0.0.0.0

memutar wadah dan saya dapat mengakses aplikasi di 127.0.0.1:5000 secara lokal di browser saya. Namun setelah memasukkan pengaturan yang sama ke dalam Pycharm (2016.2.3) jalankan GUI konfigurasi dan memulai wadah saya tidak dapat mengakses aplikasi (saya telah mencoba mencentang opsi Publikasikan semua port tetapi tidak berhasil):

konfigurasi menjalankan buruh pelabuhan pycharm

Menggunakan docker inspect container_id dengan wadah yang dibuat baris perintah, saya mendapatkan pengaturan ini di bawah NetworkSettings:

"Ports": {
    "5000/tcp": [
        {
            "HostIp": "0.0.0.0",
            "HostPort": "5000"
        }
    ]
},

Namun dengan konfigurasi yang dijalankan Pycharm, wadah yang dibuat, tampaknya wadah tersebut tidak meneruskan pengikatan port:

"Ports": {},

Apakah ada cara untuk memeriksa opsi yang diteruskan Pycharm ke Docker? Atau untuk meneruskan opsi pengikatan port dengan benar?

Saya menggunakan Windows 10 dan Docker berjalan di Hyper-V (bukan VirtualBox)


person Nicholas    schedule 23.10.2016    source sumber
comment
Saya juga mengalami masalah ini... sangat disayangkan... tapi saya rasa saya tidak perlu menjalankannya melalui pycharm untuk saat ini... sepertinya port tidak dipublikasikan   -  person Joran Beasley    schedule 11.02.2017


Jawaban (2)


Saya mempunyai masalah serupa dengan aplikasi Django. Inilah cara saya menyelesaikannya:

Pertama, Anda perlu menyiapkan penerjemah proyek dalam wadah buruh pelabuhan:

  1. Masuk ke pengaturan (CTRL+ALT+s),
  2. lalu cari project interpreter
  3. lalu klik roda kecil di pojok kanan atas,
  4. lalu klik tambahkan
  5. lalu di menu pilih Docker,
  6. lalu pilih gambar yang Anda buat sebelumnya di daftar pilihan
  7. lalu tekan tombol ok.

Sekarang Anda perlu membuat konfigurasi proses yang tepat.

  1. Tekan ALT+u
  2. lalu ALT+r
  3. lalu ALT+inser,
  4. pilih Flask server.
  5. Anda akan melihat area teks dengan label Docker container settings, klik pada area teks ini
  6. lalu tekan SHIFT+enter.

Anda akan memiliki menu yang memungkinkan Anda untuk mengonfigurasi beberapa parameter proses buruh pelabuhan termasuk penawaran port.

person Louis Saglio    schedule 21.03.2019
comment
Wow, ini emas. Semoga postingan ini suatu hari nanti mendapat banyak suara! - person Joshua Schlichting; 01.06.2019
comment
Apakah ini berhasil bagi Anda? Saya menggunakan PyCharm 2019.3.3 dan mengabaikan pengikatan port dari langkah (5) dan (6). - person w00dy; 25.02.2020

Bagi saya menambahkan IP localhost ('0.0.0.0') sebagai argumen dalam panggilan menjalankan objek aplikasi menyelesaikannya

app.run(host='0.0.0.0')
person gCoh    schedule 06.06.2018