Gambar Docker dapat dibangun melalui plug-in Docker Maven
Awal yang cepat
Tambahkan plugin Docker di pom.xml
<lugin> <GroupId> com.spotify </groupid> <ArtifactId> Docker-maven-plugin </arttifactid> <version> 0.4.13 </version> <configururation> <mageName> LinyUantongXue/Docker-Demo: 0.0.1 </imagename>/specification the Image Name, lining-demo: 0.0.1 </imagename>/Specificy the Image Name, Lining-Demo: 0.0.1 </Imagename>/Specify the Image Name, lining-Demo: 0.0.1 </Imagename>/Specify the Image Name, liny-Demo: 0.0.1 Docker-Demo adalah nama gambar (sesuai dengan nama repositori DockERHUB), 0.0.1 adalah nama label (setara dengan nomor versi) <BaseImage> Java </baseImage> // Tentukan gambar dasar, setara dengan dari Directive <Entrypoint> ["java", "-Jar", "app.jar"] <Entrypoint> ["java", "-Jar", "app.jar"] <Entrypoint> ["java", "-Jar", "app.jar"] <Entrypoint> ["java", "-Jar", "app.jar"] <Entrypoint> ["java", "-Jar", "app.jar"] <Entrypoint> [entrypoint> <TargetPath>/</targetpath> <Recrectory> $ {Project.build.directory} </sectory> // Tentukan direktori root yang akan disalin, $ {project.build.directory} berarti direktori target <certed> $ {beate.build.finalname} .Jar </include> $ {Project.Build.FinalName} .jar mengacu pada file jar yang dikemas </ser sumber daya> </serates> </configuration> </lugin> Jalankan perintah berikut untuk membangun gambar Docker
MVN Clean Package Docker: Build
Jalankan gambar Docker untuk melihat gambar yang baru saja Anda bangun
Baca file DockerFile
Anda tidak perlu menentukan BaseImage dan Entrypoint saat membaca file DockerFile
<plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <version>0.4.13</version> <configuration> <dockerDirectory>${project.basedir}/src/main/docker</dockerDirectory> // Specify the Dockerfile file to be read <imageName>linyuantongxue/docker-demo:0.0.1</imageName> // Specify the image name, linyuantongxue is the repository name (corresponding to DockerHub username), docker-demo is the image name (corresponding to DockerHub repository), 0.0.1 is the tag name (equivalent to version number) <resources> <resource> <TargetPath>/</targetpath> <Recrectory> $ {Project.build.directory} </sectory> // Tentukan direktori root yang akan disalin, $ {project.build.directory} berarti direktori target <certed> $ {beate.build.finalname} .Jar </include> $ {Project.Build.FinalName} .jar mengacu pada file jar yang dikemas </ser sumber daya> </serates> </configuration> </lugin>Mengikat plugin ke fase untuk mengeksekusi
Ada kebutuhan seperti itu dalam banyak skenario. Misalnya, ketika plug-in menjalankan paket MVN Clean, plug-in secara otomatis membangun gambar Docker. Untuk mencapai ini, Anda hanya perlu mengikat tujuan plug-in ke fase tertentu.
Format perintah maven adalah: fase mvn: sasaran. Fase mengikat fase siklus hidup konstruksi target dan target eksekusi konfigurasi sasaran
Cukup tambahkan konfigurasi berikut:
<plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <version>0.4.13</version> // Execute build target in maven lifecycle package<executions> <execution> <id>build-image</id> <phase>package</phase> <goals> <goal>build</goal> </goals> </execution> </execution> </Executions> // $$$$$$$$$$$$$$$$$$$$$ "$$$$$$$$$$$$ A dari$$$$$$$$$$$$$$$$$$ $$$$$$$$$$$$$$$$$$ " $$$$$$$$$$$$$$$$$$$$$ "$$$$$$$$$$$$ A dari$$$$$$$$$$$$$$$$$$ $$$$$$$$$$$$$$$$$$ " <mageName> linyuantongxue/docker-demo: 0.0.1 </magename> <BaseImage> java </baseImage> <TRESTPOINT> ["JAVA", "-JAR", "APP.JAR"] </entrypoint> <seruk sumber daya> <seruk sumber daya> <targetPath>/</targetpath> </entrypoint> <serumbinan> <ser Resource> <targetpath>/</targetpath> </entrypoint> <seruk sumber daya> <pource> <targetpath>/</targetpath> </entrypoint> <serumbinan> <pource> <targetpath>/</targetpath> </entrypoint> <seruk sumber daya <certed> $ {Project.build.finalname} .jar </cert> </serformage> </seratey> </configuration> </lugin>Dorong cermin
Gunakan plugin Maven untuk mendorong gambar ke hub Docker
Ubah Maven Global Configuration Information File Settings.xml dan Konfigurasi Informasi Pengguna Hub Docker
<server> <server> <dock> Docker-hub </dent> # dockhub Nama pengguna situs web ini harus semuanya menjadi huruf kecil untuk menjadi benar <username> linyuantongxue </senername> <swasword> 765371578ly </password> <mail> <mail> [email protected] </swasward> <konfigurasi> <mail> [email protected] </swascward> <konfigurasi> <mail> <mail> [email protected] </pequq.com </swasward> <mail> <mail>
Memodifikasi file pom
<lugin> <GroupId> com.spotify </groupid> <ArTifactId> Docker-maven-plugin </artifactid> <version> 0.4.13 </version> <Configuration> <mageName> LinyUantongXue/Docker-Demo: 0.0.1 </Imagename> <BaseUmage> Java </BaseMage </BaseMage </BaseMage: 0.0.1 </Imagename> Baseimage> baseimage </baseimage </baseimage </baseimage </baseimage </baseimage </baseimage </baseimage </baseimage </baseimage < <StrictPoint> ["java", "-jar", "app.jar"] </stregpoint> <urserewati> <serugur daya> <targetpath>/</targetpath> <recrectory> $ {Project.build.directory} </direktori> <clude> <couble </project.build.finalname} .jar </direktori> <certed> <coundse> </consumsion </consumsion </consumsion </consumber </project.build.finalname} .jar </constere/constere> <clude> <courser Pengaturan File.xml, Digunakan untuk mendorong gambar-> <ServerId> Docker-Hub </verIdId> </configuration> </lugin>Jalankan perintah berikut untuk menambahkan pengidentifikasi pushimage untuk menunjukkan gambar push
MVN Clean Package Docker: Build -DpushImage
Dalam contoh di atas, nama ImageName dapat digunakan untuk menentukan nama dan label gambar, dan elemen Imagetags dapat digunakan untuk menentukan nama gambar dan label lebih fleksibel, sehingga dua label dapat ditentukan untuk gambar yang sama.
<Configuration> <AmageName> LinyuantongXue/Docker-Demo </magename> <magimetags> <magimetag> 0.0.1 </magetag> <magetetag> </mageTetag> </mageTags> </konfigurasi> terbaru
Anda juga dapat menggunakan parameter DockerimageTags untuk menentukan nama tag saat membangun perintah
Salinan kode adalah sebagai berikut:
MVN Clean Pack: Build -DPushimageTags -DDockerImagetags = terbaru -ddockerimagetags = lain -tag
Jika Anda perlu berulang kali membangun gambar dengan nama tag yang sama, atur forcetags ke true
<Configuration> // ...... <forcetags> true </ forcetags> </figiguration>
Di atas adalah semua konten artikel ini. Saya berharap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.