เนื่องจากนักเทียบท่าไม่ใช่ระบบปฏิบัติการจึงไม่มี JDK สำหรับนักเทียบท่า
เมื่อฉันเข้าใจคำถามของคุณแล้ว JDK แบบเต็มมีขนาดใหญ่เกินไปสำหรับความปรารถนาของคุณในกรณีนี้คุณอาจลองเปลี่ยนเป็น JRE และรวมเฉพาะไลบรารีที่จำเป็นเท่านั้น
JDK เป็นตัวย่อของ Java Development Kit, JRE เป็นตัวย่อสำหรับ Java Runtime Engine โดย "lazyness" เนื่องจากความซับซ้อนในการแสดงรายการการพึ่งพาที่จำเป็นทุกคนไม่มีใครตัดลงไปที่ไลบรารีที่จำเป็นเท่านั้น แต่นั่นเป็นวิธีที่จะไปหากคุณต้องการลดขนาดที่ติดตั้งไว้ให้น้อยที่สุด
วิธีที่สามารถใช้งานได้มากขึ้นสามารถตัดสิ่งที่ติดตั้งบางส่วนซึ่งใช้พื้นที่มาก:
/usr/lib/jvm/jdk1.8.0_101$ du -hs *
776K bin
4.0K COPYRIGHT
5.7M db
208K include
4.9M javafx-src.zip
187M jre
133M lib
4.0K LICENSE
2.0M man
4.0K README.html
4.0K release
21M src.zip
108K THIRDPARTYLICENSEREADME-JAVAFX.txt
176K THIRDPARTYLICENSEREADME.txt
มีสอง * src.zip ซึ่งสามารถลบออกได้พวกเขาจะไม่ใช้งานและเนื่องจากคุณสามารถเห็นไดเรกทอรี lib มีขนาดครึ่งหนึ่งและภายในนั้นคุณมีสิ่งต่าง ๆ ที่คุณไม่ต้องการ:
/usr/lib/jvm/jdk1.8.0_101$ du -hs lib/*
120K lib/amd64
1.2M lib/ant-javafx.jar
18M lib/ct.sym
160K lib/dt.jar
20K lib/ir.idl
36K lib/javafx-mx.jar
400K lib/jconsole.jar
12K lib/jexec
60M lib/missioncontrol
4.0K lib/orb.idl
8.0K lib/packager.jar
2.4M lib/sa-jdi.jar
18M lib/tools.jar
34M lib/visualvm
คุณทำได้โดยไม่มีปัญหาลบ missoncontrol บนเซิร์ฟเวอร์ฉันคิดว่าคุณสามารถกำจัด visualvm ได้ด้วยคุณจะต้องตรวจสอบว่าคุณต้องการบางสิ่งบางอย่างในไดเรกทอรี lib นี้หรือไม่ แต่ฉันบอกไม่ได้ว่าไม่รู้แอปของคุณหรือไม่
สิ่งหนึ่งที่คุณควรทำในไฟล์ dockerfile ของคุณขณะติดตั้ง oracle jdk คือการลบ.tar.gz
ไฟล์ที่ดาวน์โหลดซึ่งมีขนาดเท่ากับคร่าวๆของไดเร็กตอรี่ที่เป็น.jar
ไฟล์ที่ถูกบีบอัดแล้ว tar.gz จะอยู่ที่ "แพ็คเกจ"
คุณต้องทำทั้งหมดนี้ในRUN
คำสั่งเดียวกันผูกมัดกับ&&
เพื่อหลีกเลี่ยงการเพิ่มเลเยอร์ที่คุณจะไม่ลบขนาดโดยการลบไฟล์จากเลเยอร์ก่อนหน้า