Artikel ini memperkenalkan teknik untuk menggunakan gambar Maven Docker dan membagikannya kepada Anda, sebagai berikut:
Maven adalah salah satu alat manajemen proyek Java paling populer saat ini, memberikan fungsi ketergantungan paket dan fungsi konstruksi aplikasi yang kuat.
Docker menyediakan gambar Maven resmi yang dapat digunakan untuk mengelola dan membangun aplikasi Java. Dibandingkan dengan secara langsung memasang alat Maven, menggunakan gambar Docker memiliki portabilitas yang lebih baik dan dapat dengan mudah diaktifkan versi, yang sangat ideal untuk digunakan selama integrasi kontinu.
Untuk penggunaan cermin resmi Maven, silakan merujuk ke dokumentasi penggunaan.
Menggunakan awan alibaba untuk mempercepat
Kecepatan unduhan gudang resmi Maven di jaringan domestik benar -benar memilukan. Menggunakan gambar Maven Alibaba Cloud dapat sangat meningkatkan kecepatan unduhan paket perangkat lunak.
Kami dapat menambahkan konfigurasi gambar cloud alibaba berdasarkan gambar Maven resmi. Kodenya tersedia di https://github.com/aliyuncontainerservice/maven-image
Pengaturan file konfigurasinya.xml adalah sebagai berikut
<Pengaturan xmlns = "http://maven.apache.org/settings/1.0.0" xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance" XSI: schemalocation = "http:org./orge./porge. https://maven.apache.org/xsd/settings-1.0.0.xsd "> <cocalrepository>/usr/share/maven/ref/repository </corcalrepository> <mirrors> <mirror> <! <url>http://maven.aliyun.com/nexus/content/groups/public/</url> </mirror> <mirror> <!--This is used to direct the public snapshots repo in the profile below over to a different nexus group --> <id>aliyun-nexus-public-snapshots</id> <cerminof> public-snapshots </mirrorof> <rerl> http://maven.aliyun.com/nexus/content/repositories/snapshots/ </rerl> </mirror> </mirrors> </pesting>
Alibaba Cloud Container Service menyediakan gambar Docker yang sudah dibangun untuk penggunaan langsung registri.cn-hangzhou.aliyuncs.com/acs/maven.
Kita dapat secara langsung menjalankan perintah berikut di direktori saat ini seperti menggunakan perintah mvn untuk membangun aplikasi
Salin kode sebagai berikut: Docker run -it --rm --name maven -v "$ (pwd)":/usr/src/app -w/usr/src/app registry.cn-hangzhou.aliyuncs.com/acs/maven mvn clean install bersih
Jika Anda ingin dapat menyimpan repositori Maven yang diunduh, kami dapat menggunakan volume file Docker untuk mengimplementasikannya
Pertama, jalankan perintah berikut untuk membuat volume file yang disebut "Maven-Repo"
Volume Docker Buat --Name Maven-Repo
Dalam panggilan berikutnya, pasang ke direktori unduhan repositori di gambar Maven
Salin kode sebagai berikut: Docker run -it --rm --name maven -v "$ (pwd)":/usr/src/app -v maven -repo:/usr/share/maven/ref -w/usr/src/app registry.cn-hangzhoU.aliyuncs.ccom/acsmen/maven/maven/maven/maven/maven/maven/maven/maven/maven/maven/maven/maven/maven/maven/maven/maven/maven/maven/maven/maven/maven/maven/maven/maven/maven/maven/maven/maven/maven/maven/maven/maven/maven/maven/maven/maven/maven
Dengan cara ini, repositori Maven tidak akan diunduh setiap saat.
Optimalkan DockerFile untuk meningkatkan kecepatan pembangunan
Kami dapat membangun aplikasi di Dockerfile dan menggunakan mekanisme caching hierarkis selama konstruksi Docker untuk meningkatkan kecepatan pembangunan
Berikut adalah contoh file DockerFile.Build
Dari registry.cn-hangzhou.aliyuncs.com/acs/maven:3-jdk-8env my_home =/usr/src/apprun mkdir -p $ my_homeworkdir $ my_homeadd pom.xml $ my_home# Dapatkan semua unduhan dari jalan dari The WayreRD Pom.xml $ my_home# Dapatkan semua unduhan dari jalan dari The Way ["/usr/local/bin/mvn-entrypoint.sh" ,"mvn","verify","clean" ,--fail-never"ebih# add Sourceadd. $ My_home# run maven verifyrun ["/usr/local/bin/mvn-entrypoint.sh" ,"mvn" ,"verify"]
Salah satu trik penting adalah terlebih dahulu menambahkan pom.xml ke direktori yang berfungsi, gunakan perintah Maven untuk mengunduh paket JAR yang diperlukan oleh aplikasi, dan kemudian tambahkan file sumber aplikasi untuk kompilasi. Dengan cara ini, selama pom.xml tidak diperbarui, paket JAR ketergantungan tidak akan diturunkan kembali, yang dapat mempercepat kecepatan konstruksi gambar.
Kami dapat mengkompilasi aplikasi melalui perintah berikut
Docker Build -t Builder -IMG -F DockerFile.Build.
Kompilasi Aplikasi Terpisah dan Konstruksi Gambar Docker
Untuk bahasa yang dikompilasi statis, kita biasanya perlu memisahkan proses kompilasi aplikasi dari proses konstruksi cermin. Ada dua pertimbangan utama:
Kami dapat menyalin hasil kompilasi aplikasi dari gambar Docker, sebagai berikut
Docker Build -t Builder -IMG -F DockerFile.Build .docker create - -name Builder Builder -Imgdocker CP Builder:/usr/src/app/target ./target
Pada saat ini, hasil konstruksi Maven disalin ke subdirektori "target" dari direktori saat ini.
Setelah itu, kita dapat menggunakan DockerFile lain untuk membangun gambar aplikasi. Saya tidak akan membahas detail jika saya memiliki ruang terbatas.
Meringkaskan
Artikel ini menggunakan Maven sebagai contoh untuk memperkenalkan beberapa teknik umum untuk Docker dalam konstruksi aplikasi.
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.