การเชื่อมโยงพอร์ต Pycharm Docker

ฉันกำลังเรียกใช้แอปพลิเคชันขวดภายในคอนเทนเนอร์ Docker ดังนั้นฉันจึงจำเป็นต้องผูกโฮสต์และพอร์ตคอนเทนเนอร์ (ในกรณีนี้คือพอร์ต 5,000 ทั้งคู่)

รันคำสั่งนี้:

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

หมุนคอนเทนเนอร์และฉันสามารถเข้าถึงแอปได้ที่ 127.0.0.1:5000 ภายในเบราว์เซอร์ของฉัน อย่างไรก็ตามหลังจากป้อนการตั้งค่าเดียวกันเหล่านี้ลงใน Pycharm (2016.2.3) ให้รัน GUI การกำหนดค่าและเริ่มต้นคอนเทนเนอร์ ฉันไม่สามารถเข้าถึงแอปได้ (ฉันได้ลองเลือกตัวเลือกเผยแพร่พอร์ตทั้งหมดแล้วโดยไม่มีประโยชน์):

การกำหนดค่าการรัน pycharm docker

การใช้ docker inspect container_id กับคอนเทนเนอร์บรรทัดคำสั่งที่สร้างขึ้น ฉันได้รับการตั้งค่าเหล่านี้ภายใต้ NetworkSettings:

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

อย่างไรก็ตามด้วยคอนเทนเนอร์ที่สร้างการกำหนดค่าการรัน Pycharm ดูเหมือนว่าจะไม่ผ่านการผูกพอร์ต:

"Ports": {},

มีวิธีตรวจสอบตัวเลือกที่ Pycharm ส่งไปยัง Docker หรือไม่ หรือเพื่อให้ส่งผ่านตัวเลือกการผูกพอร์ตได้อย่างถูกต้อง?

ฉันใช้ Windows 10 และ Docker ทำงานบน Hyper-V (ไม่ใช่ VirtualBox)


person Nicholas    schedule 23.10.2016    source แหล่งที่มา
comment
ฉันก็ประสบปัญหานี้เช่นกัน ... มันน่าเสียดาย ... แต่ฉันเดาว่าฉันไม่จำเป็นต้องรันผ่าน pycharm ในตอนนี้ ... ดูเหมือนว่าจะไม่เผยแพร่พอร์ต   -  person Joran Beasley    schedule 11.02.2017


คำตอบ (2)


ฉันมีปัญหาที่คล้ายกันกับแอปพลิเคชัน Django นี่คือวิธีที่ฉันแก้ไขมัน:

ก่อนอื่นคุณต้องตั้งค่าล่ามโปรเจ็กต์ในคอนเทนเนอร์นักเทียบท่า:

  1. ไปที่การตั้งค่า (CTRL+ALT+s)
  2. จากนั้นค้นหา project interpreter
  3. จากนั้นคลิกที่วงล้อเล็กๆ ที่มุมขวาบน
  4. จากนั้นคลิกที่เพิ่ม
  5. จากนั้นในเมนูให้เลือก Docker
  6. จากนั้นเลือกภาพที่คุณสร้างไว้ก่อนหน้านี้ในรายการตัวเลือก
  7. จากนั้นกดปุ่ม ok

ตอนนี้คุณต้องสร้างการกำหนดค่าการทำงานที่เหมาะสม

  1. ตี ALT+u
  2. แล้ว ALT+r
  3. แล้ว ALT+inser,
  4. เลือก Flask server
  5. คุณจะเห็นพื้นที่ข้อความที่มีป้ายกำกับ Docker container settings คลิกที่พื้นที่ข้อความนี้
  6. จากนั้นกด SHIFT+enter

คุณจะมีเมนูที่ให้คุณกำหนดค่าพารามิเตอร์การเรียกใช้นักเทียบท่าหลายตัว รวมถึงการเสนอราคาพอร์ต

person Louis Saglio    schedule 21.03.2019
comment
ว้าวนี่คือทอง ขอให้โพสต์นี้สักวันหนึ่งได้รับคะแนนโหวตมากมาย! - person Joshua Schlichting; 01.06.2019
comment
สิ่งนี้ได้ผลกับคุณไหม? ฉันใช้ PyCharm 2019.3.3 และไม่สนใจการเชื่อมโยงพอร์ตจากขั้นตอน (5) และ (6) - person w00dy; 25.02.2020

สำหรับฉันการเพิ่ม localhost IP ('0.0.0.0') เป็น arg ในการเรียกใช้วัตถุแอปแก้ไขได้

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