1. Nyeri poin yang harus diselesaikan
1. Tidak perlu membangun lingkungan pengembangan back-end.
2. Perubahan dalam lingkungan pengembangan hanya perlu mengubah cermin menjadi pembaruan sinkron.
3. Tidak perlu alat IDE seperti Eclipse.
4. Beralih Proyek Pengembangan
2. Solusi
Gunakan Docker untuk memulai gambar Ubuntu, membangun lingkungan pengembangan yang diperlukan oleh proyek dalam wadah, pasang kode lokal ke dalam wadah, gunakan volume mount untuk mengkompilasi dan menjalankan kode menggunakan lingkungan dalam wadah, dan host mengakses layanan dalam wadah melalui port yang diekspos oleh Docker, sehingga mesin pengembangan front-end hanya perlu menggunakan Docker dan melakukannya.
3. Tentang Docker
Mengerti Docker
Artikel ini tidak bermaksud menjelaskan pengetahuan Docker secara rinci. Ada banyak artikel terkait. Jika Anda tertarik, Anda dapat membaca buku ini. Saya terbatas pada pengembangan alat ini untuk penggunaan Docker. Jika ada yang salah, tolong tunjukkan.
akselerator
Accelerator Daocloud
4. Bangun Lingkungan
Setelah mengunduh dan menginstal Docker, kita bisa mulai. Apa yang kita bicarakan di bawah ini adalah Java, tetapi hal yang sama berlaku untuk lingkungan lain.
Dapatkan gambar ubuntu.
Docker Tarik Ubuntu
Setelah menyelesaikannya, jalankan docker images dan Anda akan melihat gambar yang baru diperbarui.
Masukkan wadah
Docker run -it ubuntu
5. Instal Perangkat Lunak dan Konfigurasikan Variabel Lingkungan
Perbarui pertama APT-get
pembaruan apt-get
Selanjutnya, Anda dapat menggunakan apt-get install * untuk menginstal perangkat lunak yang Anda butuhkan. Jika tidak, unduh paket instalasi dan instal sendiri. Pada saat yang sama, konfigurasikan variabel lingkungan. Saya tidak akan membahas detailnya di sini.
Vi. Mulailah layanan
Masukkan direktori Tomcat, mulai layanan, dan buka 0.0.0.0:8080 di browser. Jika tidak ada yang salah, Anda akan melihat bahwa server tidak dapat diakses. Ini karena layanan yang baru saja kami mulai adalah di Docker. Jika kami tidak melakukan beberapa operasi, kami tidak akan dapat mengakses layanan di dalam Docker.
Jadi, mari keluar wadah dulu
KELUAR
Setelah keluar, jalankan docker ps -a dan Anda dapat melihat bahwa wadah yang baru saja kita masih ada. Kebanyakan orang yang baru mengenal Docker akan melakukan kesalahan ini dan berpikir bahwa wadah akan dihancurkan setelah keluar dari wadah, tetapi sebenarnya bukan masalahnya.
Jika kami ingin memasukkan wadah ini lagi, kami dapat menjalankan perintah berikut, silakan salin ID kontainer Anda sendiri.
Docker Exec -It Container ID Bash
Meskipun wadah masih berjalan, itu tidak bertahan. Untuk mencegahnya terjadi, itu akan bertahan sesegera mungkin setelah kami memodifikasi konten dalam wadah.
docker commit container ID java
Perintah ini berarti mempertahankan wadah kita ke dalam gambar baru, yang disebut Java.
Mulailah gambar yang baru dibuat ini.
Docker Run -It -P 8080: 8080 Java
Perhatikan perubahan dalam perintah startup kami, dan ada perintah -p tambahan. Perintah ini berarti mengekspos port 8080 di wadah ke host.
Kunjungi 0.0.0.0:8080 lagi dan kita bisa melihat kucing kecil itu, sangat lucu.
Apa yang harus saya lakukan jika wadah itu masih menempati ingatan kita sekarang? Bunuh dia.
Docker RM Container ID
Langkah pertama kami telah selesai, dan selanjutnya kami akan mengintegrasikan kode kami.
7. Kode Terpadu
Wadah yang baru saja kami mulai adalah kotak hitam yang sepenuhnya independen, yang tidak tahu di mana kode kami, jadi kami perlu menggunakan volume pemasangan Docker sehingga host dan wadah dapat berbagi direktori.
Maaf, kami akan membunuh wadah yang baru saja kami mulai lagi.
Docker Run -It -V/Users/Name/Web:/Opt/Root -P 8080: 8080 Java
Perintah startup kami telah menambahkan anggota baru -V. Arti dari perintah ini adalah untuk menggantung direktori web di bawah direktori root pengguna ke dalam wadah di direktori /opt /root.
Setelah memasuki direktori, kita dapat menemukan bahwa file -file di direktori web berbaring diam -diam di dalam, seperti Mary Sue yang telah tidur selama bertahun -tahun menunggu panggilan Anda.
Mulailah menelepon.
mvn bersih instal -u -plocal -dskiptests
Setelah periode waktu tertentu, kita akan melihat prompt untuk kemasan yang sukses. Salin paket perang ke direktori Tomcat WebApps dan Anda dapat mengakses proyek Anda.
Pada titik ini, proyek kami akhirnya mulai berjalan, tetapi ada beberapa masalah.
1. Apakah Anda harus menjalankan perintah yang begitu panjang setiap saat? Sangat merepotkan.
2. Setiap kali Anda mengubah kode, harus dikemas ulang, yang membutuhkan waktu lama.
3. Bagaimana cara membaca log startup? Apa yang harus saya lakukan jika saya melaporkan kesalahan?
4. Bagaimana cara memodifikasi file templat front-end tanpa memulai kembali layanan?
Berdasarkan masalah ini, kita perlu menulis skrip untuk menyelesaikannya.
8. Skrip shell
Skrip akan memberikan instruksi berikut
-Y Pembaruan Maven Paket-kompil-paket-release-start tomcat
-P Compile-Package-Release-Start Tomcat
-r restart tomcat
-C Kompilasi File Java - Rilis - Mulai Tomcat
-W mendengarkan file VM, sinkronisasi 5S default sekali
-l lihat log tomcat
-H bantuan
# Variabel yang perlu diubah ######################################################## ############################################################################################## ############################################################. ############################################################################################## ############################################################. ############################################################################################## ############################################################. ############################################################################################## Alamat startup proyek tom_root = "$ {tom_url}/webapps"# Interval mendengarkan file, unit wt = 5# salin vmwc_vm = "src/main/webapp/web-inf/tpl/usr/share/tomcat7/webapps/root/web-inf/"# copywc_java = " /usr/share/tomcat7/webapps/root/web -inf/" # Metode umum # Gunakan fungsi paket baru newwar () { # hapus paket lama rm -rf $ {tom_root}/* # power paket perang mv $ {war_url} $ {tom_root} /root.war} tomc tomc #Av # (tom_root}/rroot.war} #vestart tomc tomc #) tomc tomc (tom_root} /root.war} tomc restart tomc # (tom1 (tom_root} /root.war} # av restart {tomcr {tom_root Mulailah Layanan $ {Tom_Url} /bin/startup.sh # Masukkan startup log tail -f $ {tom_url} /logs/catalina.out} # pemrosesan arahan sementara getopts ": yprcwlh" optNamedo case "$ optName" di "y") echo "update power {oPNED -{{y" Newwar Restart ;; "p") echo "recackage" mvn clean package -p $ {dev} -dskiptests newwar restart ;; "r") echo "restart tomcat" restart ;; "c") echo "mengkompilasi ulang dan memulai kembali layanan" mvn clean compile -p $ {dev} -dskiptests cp -r $ {wc_java} restart ;; "w") echo "Mulai dengarkan file VM" # dengarkan vm tonton -n $ {wt} cp -r $ {wc_vm} ;; "l") echo "login" # dengarkan vm tail -f $ {tom_url} /logs/catalina.out ;; "h") echo " -y Update maven package-compile-package-release-start one-stop service" echo " -p Compile and package release starts one-stop service" echo " -r Restart tomcat" echo " -c Re-java file and deploy restart service" echo " -w listen to vm file, default 5S synchronization once" echo " -l View logs" echo " -h Membantu" ;; ESAC 9. Promosikan ke tim
Setelah tiga langkah di atas, alat kami telah dibangun, tetapi bagaimana orang lain dapat menggunakannya?
Docker menyediakan layanan cloud. Jika gambar kami cukup kecil, kami dapat mendorong gambar ke cloud untuk diunduh dan dijalankan orang lain, tetapi gambar kami telah melebihi 1G. . . Jadi kami tidak dapat menggunakan metode ini.
Docker simpan java -o ./java.tar
Gunakan perintah di atas untuk bertahan gambar ke file lokal java.tar, dan kemudian transfer ke mesin teman sekelas lainnya melalui cara lain. Kami menggunakan AirDrop, beberapa menit.
Load Docker -i java.tar
Siswa lain dapat menggunakan perintah ini untuk memuat gambar kami ke Docker -nya.
Kemudian mengintegrasikan skrip shell ke dalam direktori root proyek dan Anda dapat menggunakannya dengan senang hati.
Meringkaskan
Di atas adalah seluruh konten artikel ini. Saya berharap konten artikel ini akan membantu studi atau pekerjaan Anda. Jika Anda memiliki pertanyaan, Anda dapat meninggalkan pesan untuk berkomunikasi.