วิธีเปิดเผย posgres ใน docker บน aws ไปยังแอพอื่น ๆ


0

ฉันมีนักเทียบท่าเช่นนี้

docker run --name my-db-name -e POSTGRES_PASSWORD=mysecretpassword -d postgres:latest

ทำงานในเซิร์ฟเวอร์

และฉันมีแอป golang ของฉันห่อโดยนักเทียบท่าที่ทำงานในเซิร์ฟเวอร์เดียวกัน

func main() {
    db, _ := sql.Open("postgres", "postgres://postgres:@192.168.99.100:5432/postgres?sslmode=disable")

    http.HandleFunc("/test", handler)
    http.ListenAndServe(":8080", nil)
}

ข้างต้นทำงานในท้องถิ่นของฉันโดยไม่ทำงานใน aws เพราะ ip ไม่ถูกต้อง

ตั้งแต่ฉันใช้ mac ฉันต้องใช้ ip docker machine เพื่อเชื่อมต่อกับ docker postgres db แต่ใน aws ฉันไม่ได้

เป็นวิธีที่ดีในการกำหนดค่านี้คืออะไร

คำตอบ:


0

คุณต้องแมปพอร์ตจากนักเทียบท่าของคุณกับพอร์ตของโฮสต์ของคุณ ดังนั้นคุณต้องเพิ่มสิ่งต่อไปนี้:

-p 5432:5432

คำสั่งของคุณควรมีลักษณะเช่นนี้:

docker run --name my-db-name -e POSTGRES_PASSWORD=mysecretpassword -d -p 5432:5432 postgres

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.