คุณไม่สามารถแก้ไขไฟล์โฮสต์ในอิมเมจโดยใช้echo
ในRUN
ขั้นตอนเนื่องจาก Docker daemon จะรักษาไฟล์ (/ etc / hosts) และเนื้อหา (รายการโฮสต์) เมื่อคุณเริ่มต้นคอนเทนเนอร์จากอิมเมจ
อย่างไรก็ตามสามารถใช้สิ่งต่อไปนี้เพื่อให้ได้สิ่งเดียวกัน:
ENTRYPOINT ["/bin/sh", "-c" , "echo 192.168.254.10 database-server >> /etc/hosts && echo 192.168.239.62 redis-ms-server >> /etc/hosts && exec java -jar ./botblocker.jar " ]
สิ่งสำคัญที่ต้องสังเกตคือการใช้exec
คำสั่งตามเอกสารนักเทียบท่าแนะนำ การใช้execจะทำให้คำสั่ง java เป็น PID 1 สำหรับคอนเทนเนอร์ การขัดจังหวะของ Docker จะตอบสนองต่อสิ่งนั้นเท่านั้น
ดูhttps://docs.docker.com/engine/reference/builder/#entrypoint