Cara menggunakan dockercompose untuk membina aplikasi springboot-mysql-nginx

PHPz
Lepaskan: 2023-05-28 08:58:05
ke hadapan
1085 orang telah melayarinya

Menggunakan docker untuk membina aplikasi spring-boot adalah untuk membina pakej jar yang disusun ke dalam imej.

Artikel ini menjalankan spring-boot bersama-sama dengan pangkalan data sebagai satu set perkhidmatan docker.

Di sini saya hanya merekodkan operasi saya Untuk kod berjalan yang lengkap, lihat kandungan dalam Petikan 1 dalam "Rujukan".
(Bagaimana saya mengubah suai direktori pemetaan mysql dan mendapatkan IP jauh)

Langkah utama:

  • Membina aplikasi springboot ringkas

  • Aplikasi menambah sokongan di bawah docker

  • Tulis fail konfigurasi dockercompose

  • Berlatih menjalankan

Bina aplikasi springboot ringkas

Buat aplikasi web dan kira bilangan alamat IP yang melawati tapak.

dan disimpan dalam pangkalan data mysql, di mana jpa digunakan untuk mengakses pangkalan data.

Pergantungan

 org.springframework.boot spring-boot-starter-parent 2.0.0.release 
Salin selepas log masuk

Pergantungan perpustakaan web, jpa, mysql, tset

  org.springframework.boot spring-boot-starter-web   org.springframework.boot spring-boot-starter-data-jpa   mysql mysql-connector-java   org.springframework.boot spring-boot-starter-test test  
Salin selepas log masuk

Fail konfigurasi

rreee

Kod teras >

spring.datasource.url=jdbc:mysql://localhost:3306/test spring.datasource.username=root spring.datasource.password=root spring.datasource.driver-class-name=com.mysql.jdbc.driver spring.jpa.properties.hibernate.hbm2ddl.auto=update spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.mysql5innodbdialect spring.jpa.show-sql=true
Salin selepas log masuk

Kelas entiti

@restcontroller public class visitorcontroller{ @autowired private visitorrepository repository; @requestmapping("/") public string index(httpservletrequest request) { string ip= request.getheader("x-real-ip"); if(ip== null || "".equals(ip)) { ip = request.getremoteaddr(); } visitor visitor = repository.findbyip(ip); if(visitor == null) { visitor = new visitor(); visitor.setip(ip); visitor.settimes(1l); } else { visitor.settimes(visitor.gettimes()+1); } repository.save(visitor); return "ip:"+visitor.getip()+" "+visitor.gettimes()+" times."; } }
Salin selepas log masuk

Kod lapisan repositori merujuk kepada kandungan berkaitan jpa.

Pangkalan data tempatan dibuka, dan kata laluan ialah kata laluan dalam konfigurasi di atas Selepas menjalankannya menggunakan mvn spring-boot:run, anda boleh melihat bilangan IP, yang akan meningkat selepas setiap statistik.

fail konfigurasi dockercompose

Buat fail docker-compose.yaml baharu, seperti berikut:

@entity public class visitor { @id @generatedvalue private long id; @column(nullable=false) private long times; @column(nullable=false) private string ip; // get,set 方法略 }
Salin selepas log masuk

Terutamanya menerangkan fail konfigurasi ini, dan Tambah konfigurasi yang berkaitan pada sistem fail.

Terdapat tiga perkhidmatan di bawah perkhidmatan nginx, mysql, app.

imej menentukan penggunaan imej. nginx dan mysql diambil terus dari gudang docker.
Imej tidak dinyatakan dalam apl, tetapi direktori tempat fail docker terletak ditentukan dengan binaan.
volum menentukan pemetaan antara fail dalam direktori tempatan dan alamat sasaran kontena.
persekitaran mengkonfigurasi pembolehubah persekitaran yang diperlukan oleh bekas
port mengkonfigurasi port pemetaan antara tempatan dan bekas, dengan port tempatan di hadapan dan port kontena di belakang

Peranan volum konfigurasi di bawah ngixn: Fail konfigurasi nginx yang kami tulis terus menimpa fail konfigurasi nginx lalai dalam bekas.


Peranan konfigurasi volum di bawah mysql: memetakan fail data mysql ke direktori mysqldata tempatan. Apabila bekas dipadamkan, data masih ada.


Peranan konfigurasi volum di bawah apl: Baris pertama adalah untuk memetakan fail kod ke bekas. Baris kedua adalah untuk memetakan fail gudang maven ke tempatan. Selepas memadamkan bekas, bina semula tanpa memuat turun semula pakej kebergantungan. Perintah

command: mvn clean spring-boot:run -dspring-boot.run.profiles=docker

ialah untuk menyusun dan menjalankan projek dalam bekas, menggunakan profil docker.

Jadi fail yang ingin kita tambahkan

  • dockerfile: Buat fail baharu dan tambah baris dari maven:3.5-jdk-8

  • Profil Docker: Salin application.properties ke application-docker.properties, dan tukar alamat sambungan pangkalan data dalam application-docker.properties kepada jdbc:mysql://mysql:3306/test.

  • fail konfigurasi nginx

  • version: '3' services: nginx: container_name: v-nginx image: nginx:1.13 restart: always ports: - 80:80 - 443:443 volumes: - ./nginx/conf.d:/etc/nginx/conf.d mysql: container_name: v-mysql image: mysql/mysql-server:5.7 environment: mysql_database: test mysql_root_password: root mysql_root_host: '%' ports: - "3306:3306" volumes: - ./mysqldata:/var/lib/mysql restart: always app: restart: always build: ./app working_dir: /app volumes: - ./app:/app - ~/.m2:/root/.m2 expose: - "8080" depends_on: - nginx - mysql command: mvn clean spring-boot:run -dspring-boot.run.profiles=docker
    Salin selepas log masuk

    Pengesahan penggunaan

    Letakkan keseluruhan fail Salin ke pelayan dan gunakan

    untuk menjalankannya.docker-compose up

    Atas ialah kandungan terperinci Cara menggunakan dockercompose untuk membina aplikasi springboot-mysql-nginx. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!