التطبيق المطور هو واحد من Crud Javaweb مع Tomcat و Postgres.
نستخدم كيان شخص واحد فقط كمجال.
إنه تطبيق بسيط للاستخدام التعليمي ، لذلك لم يتم معالجته
مفاهيم الأمان والتحقق من صحة البيانات على سبيل المثال.
نحن نركز فقط على إنشاء حاوية تطبيق Java وحاوية ل
قاعدة بيانات التطبيق مع Docker.
تصور لحل نشاط انضباط نقاط البيع
دورة تحليل النظم وتطويرها
IFPB Campus Cajazerias
الأستاذ الانضباط ريكاردو أيوب
بادئ ذي بدء ، احصل على 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 post-client
نسخ create.sql /docker-entrypoint-initdb.d/
نسخ insert.sql /docker-entrypoint-initdb.d/
كما ندرك في الملف أعلاه ، نقوم بإعداد Postgres
الإشارة إلى المستخدم وكلمة المرور واسم البنك الذي سيتم إنشاؤه لتلقي البيانات
طلب.
في الخطين الأخيرين ، نعلم Docker ، والذي بعد ذلك ينشئ قاعدة البيانات
يجب أن تقرأ محتويات ملفات create.sql التي ستنشئ الجدول insert.sql
هذا سيدخل في بنك ما بعد العميل.
مثير لا؟
إنشاء الجدول pessoa (
المعرف التسلسلي ،
اسم حرف متفاوت (80) ليس فارغا ،
شخصية CPF تختلف (14) وليس لاغية ،
المفتاح الأساسي (معرف)
) ؛
أدخل في شخص (الاسم ، CPF) قيم ('Kiko' ، '123.132.121-31') ؛
أدخل في الشخص (الاسم ، CPF) قيم ('Keys' ، '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 ، سوف يرتب Docker لك تلقائيًا ، بالطبع
هذا لأننا وصفنا بهذه الطريقة على 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 ، سوف يرتب Docker لك تلقائيًا ، بالطبع ،
هذا لأننا وصفنا هذا الإجراء على مشروع 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/application
أعلاه قمنا بتكوين منفذ 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
Docker Build -T Image-the-Aja-Java.
Docker Run -P 8080: 8080 -D-Name App-Link Bank: Host-Banco Image-Da-A Application-Java
nonrun.sh
تطبيق Docker Stop
تطبيق Docker Kill
Docker RM App
Docker RMI -f صورة من الجيفا
Docker Stop Bank
Docker Kill Bank
Docker RM Bank
Docker RMI -f Elephant/Bank
لذلك نظرًا لأن لديك بالفعل الصور والحاويات التي تم إنشاؤها ،
لم يعد من الضروري كتابة أوامر إنشاء صورة قاعدة البيانات في كل مرة ،
قم بإنشاء حاوية الاتصال ، ثم قم بإنشاء صورة تطبيق الويب ، قم بإنشاء ملف
الحاوية بعد كل تحديث لمشروعك.
ببساطة افتح النوع في Docker:
sh run.sh
سيفعل كل شيء دفعة واحدة:
SH nonrun.sh
سيفعل كل شيء دفعة واحدة:
سيوقف Docker حاوية التطبيق
سوف Docker قتل الحاوية
قم بإزالة حاوية التطبيق
ستقوم بإزالة الصورة من تطبيق Docker
سيوقف Docker حاوية Banco Elefante
سوف Docker قتل الحاوية
إزالة الحاوية المصرفية
إزالة صورة البنك
سوف Maven تنظيف المشروع

docker container ls
docker ps -a
docker stop <container_id | container_name>
مراجع Docker
نحن نستخدم git.