สามารถสร้างภาพนักเทียบท่าได้ผ่านปลั๊กอิน Docker ของ Maven
เริ่มต้นอย่างรวดเร็ว
เพิ่มปลั๊กอิน Docker ใน pom.xml
<plugin> <splould> com.spotify </groupId> <ratifactid> Docker-Maven-Plugin </artifactid> <persion> 0.4.13 </เวอร์ชัน> <การกำหนดค่า> <ageMeName> linyuantongxue/docker-demo: 0.0.1 </imagename> // ชื่อ), Docker-Demo เป็นชื่อรูปภาพ (สอดคล้องกับชื่อที่เก็บ DockerHub), 0.0.1 เป็นชื่อฉลาก (เทียบเท่ากับหมายเลขเวอร์ชัน) <SaseImage> Java </SepASIMAGE> // ระบุภาพฐานเทียบเท่า </การป้อนข้อมูล> <sournedPath>/</targetath> <ไดเรกทอรี> $ {project.build.directory} </directory> // ระบุไดเรกทอรีรูทที่จะคัดลอก, $ {project.build.directory} หมายถึงไดเรกทอรีเป้าหมาย <รวมถึง $ {project.build.finalname} $ {project.build.finalname} .jar อ้างถึงไฟล์ jar แพคเกจ </resources> </resources> </การกำหนดค่า> </plugin> เรียกใช้คำสั่งต่อไปนี้เพื่อสร้างอิมเมจนักเทียบท่า
MVN Clean Package Docker: Build
ดำเนินการอิมเมจ Docker เพื่อดูภาพที่คุณเพิ่งสร้างขึ้น
อ่านไฟล์ DockerFile
คุณไม่จำเป็นต้องระบุ baseimage และ entrypoint เมื่ออ่านไฟล์ dockerfile
<Plugin> <SloupId> com.spotify </groupId> <ratifactId> Docker-Maven-Plugin </artifactid> <Sersion> 0.4.13 </Sentor> <การกำหนดค่า> <CONKERDIRECTORY> $ {Project.basedir}/src/main/docker <AmageName> Linyuantongxue/Docker-Demo: 0.0.1 </imagename> // ระบุชื่อภาพ Linyuantongxue เป็นชื่อที่เก็บ (สอดคล้องกับชื่อผู้ใช้ DockerHub), Docker-Demo เป็นชื่อภาพ <sournedPath>/</targetath> <ไดเรกทอรี> $ {project.build.directory} </directory> // ระบุไดเรกทอรีรูทที่จะคัดลอก, $ {project.build.directory} หมายถึงไดเรกทอรีเป้าหมาย <รวมถึง $ {project.build.finalname} $ {project.build.finalname} .jar อ้างถึงไฟล์ jar แพคเกจ </resources> </resources> </การกำหนดค่า> </plugin>ผูกปลั๊กอินกับเฟสเพื่อดำเนินการ
มีความต้องการเช่นนี้ในหลาย ๆ สถานการณ์ ตัวอย่างเช่นเมื่อปลั๊กอินดำเนินการแพ็คเกจ MVN Clean ปลั๊กอินจะสร้างอิมเมจ Docker โดยอัตโนมัติ เพื่อให้บรรลุเป้าหมายนี้คุณจะต้องผูกเป้าหมายของปลั๊กอินเข้ากับเฟสบางอย่าง
รูปแบบคำสั่ง maven คือ: MVN Phase: เป้าหมาย เฟสผูกเฟสวงจรชีวิตการก่อสร้างของเป้าหมายและเป้าหมายการดำเนินการของการกำหนดค่าเป้าหมาย
เพียงเพิ่มการกำหนดค่าต่อไปนี้:
<plugin> <roupId> com.spotify </groupId> <ratifactid> Docker-Maven-Plugin </artifactid> <sersion> 0.4.13 </Sersion> // ดำเนินการสร้างเป้าหมายในแพ็คเกจ MAVEN LIFECYCLE <DEACUTIONS> </Execution> </Executions> // - - - - <AmageName> Linyuantongxue/Docker-Demo: 0.0.1 </imagename> <saseimage> java </baseimage> <ententpoint> ["java", "-jar", "app.jar"] </entrypoint> <conaled> $ {project.build.finalname} .jar </-dalject> </sursece> </resources> </การกำหนดค่า> </plugin>ดันกระจก
ใช้ปลั๊กอิน Maven เพื่อกดรูปภาพไปยัง Docker Hub
แก้ไข Maven Global Configuration Information Settings.xml และกำหนดค่าข้อมูลผู้ใช้ Docker Hub
<servers> <server> <id> Docker-Hub </id> # DockerHub ชื่อผู้ใช้ของเว็บไซต์นี้จะต้องเป็นตัวพิมพ์เล็กทั้งหมดที่ถูกต้อง <ผู้ใช้> Linyuantongxue </username> <password> 765371578ly </รหัสผ่าน>
แก้ไขไฟล์ POM
<Plugin> <SloupId> com.spotify </groupId> <ratifactId> Docker-Maven-Plugin </artifactid> <Sersion> 0.4.13 </เวอร์ชัน> <การกำหนดค่า> <AmageName> Linyuantongxue/Docker-Demo: 0.0.1 <intryPoint> ["java", "-jar", "app.jar"] </entrypoint> <srovesous> <srovesous> <sropourtPath>/</targetPath> <ไดเรกทอรี> $ {project.build.directory} </directory> sett.xml ใช้เพื่อกดรูปภาพ-> <serverid> Docker-Hub </ServerId> </การกำหนดค่า> </plugin>ดำเนินการคำสั่งต่อไปนี้เพื่อเพิ่มตัวระบุ pushImage เพื่อระบุภาพกด
MVN Clean Package Docker: build -dpushimage
ในตัวอย่างข้างต้น imageName สามารถใช้เพื่อระบุชื่อภาพและฉลากและองค์ประกอบ ImageTags สามารถใช้เพื่อระบุชื่อภาพและฉลากได้อย่างยืดหยุ่นมากขึ้นเพื่อให้สามารถระบุป้ายกำกับสองป้ายสำหรับภาพเดียวกัน
<การกำหนดค่า> <AmageName> Linyuantongxue/Docker-Demo </imagename> <AmagetAgs> <AmagetAg> 0.0.1 </imageTag> <AmageTag> ล่าสุด </imageTag>
นอกจากนี้คุณยังสามารถใช้พารามิเตอร์ Dockerimagetags เพื่อระบุชื่อแท็กเมื่อสร้างคำสั่ง
การคัดลอกรหัสมีดังนี้:
MVN Clean Package: build -dpushimageTags -doCkerImagetags = ล่าสุด -doCkerImagetags = แท็กอื่น
หากคุณต้องการสร้างภาพซ้ำ ๆ ด้วยชื่อแท็กเดียวกันให้ตั้งค่า forcetags เป็นจริง
<การกำหนดค่า> // ...... <ForCetAgs> True </FORCETAGS> </การกำหนดค่า>
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น