แอปพลิเคชันที่พัฒนาขึ้นนั้นเป็นหนึ่งจาก Crud Javaweb กับ Tomcat และ Postgres
เราใช้เอนทิตีของบุคคลเพียงคนเดียวเป็นโดเมน
มันเป็นแอปพลิเคชั่นที่ง่ายสำหรับการใช้งานการสอนดังนั้นพวกเขาจึงไม่ได้รับการแก้ไข
แนวคิดด้านความปลอดภัยและการตรวจสอบข้อมูลเช่น
เรามุ่งเน้นเฉพาะการสร้างคอนเทนเนอร์แอปพลิเคชัน Java และคอนเทนเนอร์สำหรับ
ฐานข้อมูลแอปพลิเคชันพร้อม Docker
รู้สึกถึงการแก้ไขกิจกรรมของวินัยของ POS
หลักสูตร การวิเคราะห์และพัฒนาระบบ
IFPB Campus Cajazerias
ศาสตราจารย์ด้านวินัย Ricardo Job
ก่อนอื่นรับ Docker 
ดาวน์โหลด Docker
แต่ในขณะที่เราใช้ Docker สำหรับการปรับใช้คุณสามารถใช้ตัวแก้ไขข้อความเพียงตัวเดียวเช่น Sublime หรือ Notepad ++ ...





หากคุณชอบรูปแบบการให้ IDE ช่วยให้คุณกรอกรหัสที่คุณสามารถใช้ NetBeans หรือ Eclipse 

Dockerfile ของฐานข้อมูล ภายในโครงการของคุณสร้างไดเรกทอรีที่มีชื่อ postgres และภายในสร้างไฟล์ Dockerfile ชื่อพร้อมกับไฟล์ create.sql และ insert.sql อีกสองไฟล์เราจะพูดถึงพวกเขาและเนื้อหาของพวกเขาในไม่ช้า
ไฟล์ DockerFile มีเนื้อหาต่อไปนี้:
จาก postgres
env postgres_user postgres
Env Postgres_Password 12345
Env Postgres_db โพสต์-ลูกค้า
คัดลอก create.sql /docker-entrypoint-initdb.d/
คัดลอก insert.sql /docker-entrypoint-initdb.d/
ตามที่เราตระหนักในไฟล์ด้านบนเรากำลังตั้งค่า postgres
ระบุผู้ใช้รหัสผ่านและชื่อของธนาคารที่จะสร้างขึ้นเพื่อรับข้อมูล
แอปพลิเคชัน.
ในสองบรรทัดสุดท้ายเรากำลังแจ้งให้ Docker ซึ่งหลังจากสร้างฐานข้อมูล
ควรอ่านเนื้อหาของทั้งสองไฟล์ create.sql ที่จะสร้างตารางและ insert.sql
ที่จะแทรกในธนาคารหลังลูกค้า
Sensational Not?
สร้าง Table Pessoa (
รหัสอนุกรม
ชื่ออักขระที่แตกต่างกัน (80) ไม่ใช่โมฆะ
ตัวละคร CPF แตกต่างกันไป (14) ไม่ใช่ NULL
คีย์หลัก (ID)
-
แทรกเข้าไปในบุคคล (ชื่อ, cpf) ค่า ('kiko', '123.132.121-31');
แทรกลงในบุคคล (ชื่อ, cpf) ค่า ('ปุ่ม', '123.132.121-31');
แทรกเข้าไปในบุคคล (ชื่อ, cpf) ค่า ('chiquinha', '123.132.121-31');
แทรกเข้าไปในบุคคล (ชื่อ, cpf) ค่า ('madruga', '123.132.121-31');
แทรกเข้าไปในบุคคล (ชื่อ, cpf) ค่า ('florinda', '123.132.121-31');
docker build -t elefante/banco ./postgres
-t : แท็กอะไรที่เราจะกำหนดให้กับภาพนี้
./postgres
* elefante/banco : ชื่อภาพที่เราได้นำมาใช้
หลังจากที่คุณเรียกใช้คำสั่งด้านบนถ้าคุณไม่มีภาพ
จาก postgres นักเทียบท่าจะจัดให้คุณโดยอัตโนมัติแน่นอน
นี่เป็นเพราะเราอธิบายวิธีนี้ใน DockerFile
docker image ls
หรือ
docker images
docker run -p 5433:5432 -d --name banco elefante/banco
-p : ผูกระหว่างประตูโฮสต์ท้องถิ่นกับประตูคอนเทนเนอร์ -d : คอนเทนเนอร์จะถูกดำเนินการในพื้นหลังโดยไม่ขัดขวางเทอร์มินัล --name : ชื่อของคอนเทนเนอร์ banco : ชื่อคอนเทนเนอร์
ด้านบนเรากำหนดค่าโพสต์จาก postgres เป็น 5433 ซึ่งในกรณีนี้คือพอร์ต
ที่ฉันกำหนดค่าในแอปพลิเคชัน Java ของฉันประตูหลัง : เป็นประตูคอนเทนเนอร์ที่เราสร้างขึ้น
Dockerfile FROM tomcat
COPY target/Aplicacao.war ${CATALINA_HOME}/webapps
FROM : พูดภาพที่เราต้องการ
COPY : พูดถึงวิธีที่จะคัดลอกไฟล์. war สำหรับการปรับใช้
${CATALINA_HOME}/webapps : สถานที่ที่เราจะเก็บไฟล์อันรุ่งโรจน์
ไฟล์ Dockerfile นี้จะต้องอยู่ในไดเรกทอรีรูทของโครงการของคุณ
เป็นที่น่าสังเกตว่า Aplicacao ชื่อเป็นการเงินที่ฉันมอบให้กับแอปพลิเคชัน
ภายใน pom.xml
มันเป็นชื่อนี้ที่เราจะเรียกระบบในเบราว์เซอร์
<build>
<finalName>Aplicacao</finalName>
</build>
และแน่นอนภายในโฟลเดอร์ WEB-INF เราต้องมีไดเรกทอรีอื่นที่เรียกว่า lib
นั่นจะต้องมีห้องสมุด jstl.jar และ standart.jar มิฉะนั้นเราจะมี
ปัญหาเมื่อใช้ระบบของเราในเบราว์เซอร์
docker build -t imagem-da-aplicacao-java .
-t : แท็กอะไรที่เราจะกำหนดให้กับภาพนี้
. : พา ธ ญาติ (หรือสัมบูรณ์) ไปยังไฟล์ DockerFile
หลังจากที่คุณเรียกใช้คำสั่งด้านบนถ้าคุณไม่มีภาพ
จาก Tomcat นักเทียบท่าจะจัดให้คุณโดยอัตโนมัติแน่นอน
นี่เป็นเพราะเราอธิบายการกระทำนี้ในโครงการ DockerFile ที่เป็นปัญหา
จาก Tomcat
คัดลอกเป้าหมาย/application.war $ {catalina_home}/webapps
docker image ls
หรือ
docker images
docker run -p 8080:8080 -d --name app --link banco:host-banco imagem-da-aplicacao-java
-p : ผูกระหว่างประตูโฮสต์ท้องถิ่นกับประตูคอนเทนเนอร์
-d : คอนเทนเนอร์จะถูกดำเนินการในพื้นหลัง* ไม่ขัดขวางเทอร์มินัล
--name : ชื่อของคอนเทนเนอร์
--link : สำหรับ Docker เพื่อเชื่อมโยงธนาคารแห่ง Conteiner กับกระเบื้องโฮสต์ที่อ้างอิงในโครงการ Java ของเราในไฟล์ dbutil.java
ตอนนี้ไปที่เบราว์เซอร์เพื่อเปิดโครงการของคุณ: http: // localhost: 8080/แอปพลิเคชัน
ด้านบนเรากำหนดค่าพอร์ต Tomcat เป็น 8082 จำได้ไหม?
ในกรณีของฉันในขณะที่ฉันยังคงใช้กล่องเครื่องมือ Docker บน Windows ฉันเปิดแอปพลิเคชันที่ http://192.168.99.100:8080/application.war/
เพื่อปรับปรุงกระบวนการพัฒนาเราจะสร้างไฟล์. sh สองไฟล์:
run.sh
ไฟล์ run.sh ต้องมีเนื้อหาต่อไปนี้:
Docker Build -t Elephant/Bank ./postgres
Docker Run -p 5433: 5432 -d -Name Bank Elephant/Bank
แพ็คเกจ MVN Clean
Docker Build -t Image-the-the-Aja-Java
Docker Run -P 8080: 8080 -D-App-Link Bank: Host-Banco Image-DA-A แอปพลิเคชัน Java
nonrun.sh
แอพหยุด Docker
แอป Docker Kill
แอป Docker RM
Docker RMI -F Image-of-application-java
Docker Stop Bank
Docker Kill Bank
Docker RM Bank
Docker RMI -F Elephant/Bank
ดังนั้นเนื่องจากคุณมีภาพและคอนเทนเนอร์ที่สร้างขึ้นอยู่แล้ว
ไม่จำเป็นต้องพิมพ์คำสั่งในการสร้างอิมเมจฐานข้อมูลทุกครั้ง
สร้างคอนเทนเนอร์ติดต่อจากนั้นสร้างภาพของเว็บแอปพลิเคชันสร้างไฟล์
คอนเทนเนอร์หลังจากการอัปเดตแต่ละโครงการของคุณ
เพียงเปิดประเภทที่ Docker:
sh run.sh
จะทำทุกอย่างพร้อมกัน:
sh nonrun.sh
จะทำทุกอย่างพร้อมกัน:
นักเทียบท่าจะหยุดคอนเทนเนอร์แอปพลิเคชัน
นักเทียบท่าจะฆ่าตู้คอนเทนเนอร์
ลบแอปพลิเคชันคอนเทนเนอร์
คุณจะลบภาพออกจากแอปพลิเคชัน Docker
นักเทียบท่าจะหยุดคอนเทนเนอร์ Banco Elefante
นักเทียบท่าจะฆ่าตู้คอนเทนเนอร์
ลบคอนเทนเนอร์ธนาคาร
ลบภาพธนาคาร
Maven จะทำความสะอาดโครงการ

docker container ls
docker ps -a
docker stop <container_id | container_name>
นักเทียบท่าอ้างอิง
เราใช้ Git