
depends_on), ומקבל את פרטי ההתחברות כמשתני סביבה. הפורט 8000 חשוף כלפי חוץ.docker compose up -d מוריד את האימג'ים, מגדיר אותם ומרים את הכל. ההרצאה מציינת שההפעלה נמשכת כמה דקות.docker compose up -d מפעיל רק את השירות החדש, ואת הקונטיינרים הקיימים הוא לא מוחק.הטקסט המלא של הדקות הראשונות בהרצאה «הקמת אתר Wordpress עם Docker Compose» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
שלום לכולם בהרצאה הזאת אנחנו רוצים להקים וורדפרס אתר של וורדפרס עם דוקר קומפוז ויחד עם PHP MyAdmin ולעשות אתר אינטרנט אמיתי בתוך קונטיינר שמורכב מכמה קונטיינרים ובשביל לנהל כמה קונטיינרים כבר למדנו צריך להשתמש בדוקר קומפוז שזה כמו כלי שעושה לנו אורכיסטרציה ניהול מרכזי של כמה קונטיינרים הוא גם יודע לעשות בילד אם צריך,
הוא יודע לחבר ביניהם לרשת נפרדת, הכל מצוים. שימו לב, בווינדוס 10, איפה שעדכנתי את הכלי הזה של docker for desktop, זוכרים שהתקנו אותו בהרצאות קודמות, שזה מה שנהוג להתקין, docker for desktop על ווינדוס 10, שהוא מאפשר לכל מיני הגדרות לעשות, ולעשות ישר sign-in לתוך ריפוזיטור,
restart quit, זה כל זה ניהול של דוקר יש לו גם חלק מהתקנה דוקר קומפוז ואז דוקר קומפוז מותקן כבר על ווינדוס 10 בגלל שהתקנו את הדסקטופ אבל בשרת אם אנחנו נעשה דוקר קומפוז אך נראה שאין את הכלי הזה הוא לא מותקן הוא לא מופיע הוא לא יודע מה זה דוקר קומפוז is not recognized הוא לא יודע מה זה דוקר קומפוז אז אנחנו צריכים להתקין אותו
אז בואו נתקין docker-compose על השרת ואז נקים כמה קונטיינרים, אחד ל-wordpress, אחד ל-database. אז אנחנו צריכים docker-compose install for Windows Server.
ויש לנו פה htp-docs docker-compose, install docker-compose, יש pre-requisites, כל מיני דרישות קדם, אנחנו צריכים Windows Server, ויש לנו פה שתי פקודות שצריך להריץ, זאת הפקודה הראשונה, נריץ אותה, עשיתי קונטרול גלגלת כדי שאני אוכל לראות יותר טוב, אני מריץ את הפקודה הזאת,
ואני מריץ את הפקודה שלמעשה מביאה לי את הקובץ של docker-compose, תיק את זה, מריץ.
מה זה עושה? זה עושה invoke-web-request, לוקחת מתוך האתר הזה את הקובץ ה-XE, בעצם מתוך ה-git-app-compose-release את הקובץ ה-XE, ושמו אותו ב-out-file בתוך משתנה הסביבה של program files, למעשה c program files docker docker-compose אז היא שמה לנו בתוך תיקיה
של docker docker-compose.axe את מה שהיא מורידה את הקובץ הזה וזה מה שעושה בעצם invoke-web-request לוקח קובץ מתוך האינטרנט מוריד אותו ושם אותו איפה שנגיד לו כך גם אנחנו ממש רואים איך הוא לוקח אותו הנה הוא סיים ויש לנו עכשיו docker-compose.axe יפה מאוד הנה הוא עובד נותן לנו פירוט פה ודפיין אנד ראן מולטי
קונטיינר אפליקיישן וכמו שדיברנו יש לו כמה אופציות בוא נראה את האופציות כמו בילד לבנות את כל האימג'ים שצריך וסטארט סטופ אקזק להריץ כמו דוקר רגיל רק כשהוא עובד על קבוצה של קונטיינרים ולא רק על אחד מה שאני מאוד אוהב זה דאון שזה סטופ אנד רימוף קונטיינר
שזה מאוד נוח בדוקר הרגיל אין ואתם יכולים להריץ דוקר קומפוס וורז'ן לראות שהוא באמת עובד ואפ קריאייט אנד סטארט קונטיינרס וטופ לראות מה רץ בתוך הקונטיינרים בטאסק מנג'ר שלהם.
טוב בוא נחזור לענייננו בוא נעשה פה תיקייה שנקראת וורדפרס אוקיי נעשה פה תיקייה שנקראת וורדפרס ואני צריך ככה שיהיה לי איזשהו כלי במקום נוטפד אני רוצה נוטפד פלוס פלוס בשרת לא מתקינים לרוב ויז'ואל סטודיו ודברים כאלו אז משתמשים במקסימום הדבר הכי נוח שיש בשרת זה notepad++ באופן כללי על שרת כמה שפחות התקנות עושים כי הוא אמור לתת שירות לאלפי
אנשים אוקיי אז הדבר היחיד שאני מרשה להתקין על השרתים זה notepad++ ולא כל מיני visual studio ודברים כאלו למרות שראיתי גם שרתים בפרודקשן שיש להם visual studio טוב אז אנחנו צריכים עכשיו ללכת ויש יש לנו פה wordpress שימו לב יש אנחנו מחפשים wordpress בוא ניקח אחד מוכן docker compose wordpress docker compose אנחנו רואים פה quickstart compose and
wordpress באתר של docker הם נותנים לנו כבר את הקובץ מוכן נכון שזה נוח אנחנו באתר של docker.com יש להם כבר קובץ מוכן לwordpress כדוגמה וזה בדיוק מה שאנחנו נעשה אנחנו נתחיל מהדוגמה שלהם וננסה להבין מה הולך בה אחרי זה גם נוסיף לה תמיכה ב-PHP מהאדמין כדי לנהל את הדאטאבייס.
אז אני לוקח את הקובץ הזה, שם אותו כאן, שם לו תמיכה בשפות, שמתם לב זה YAML? הופה, תראו, הכל קיבל צבע. כי הוא הבין בלנגוויצ'רס ולפי איזה תקן לפרש את הטקסט.
וזה ממש נוח שהוא יודע לתמוך בכל מיני שפות, לדוגמה YAML, XML, שזה תקנים, בשפות תכנות כל מיני כמו C-Sharp, אז ממש נוח, הוא עוזר לי עם הצבעים ומה שהוא יכול.
מה אנחנו עושים עם כל הקובץ הזה? את כל הקובץ הזה אנחנו שומרים תחת שם הדפולטי docker-compose-yaml. עכשיו, אם אנחנו לא נשתמש בשם דפולטי, נצטרך לרשום מינוס F כל פעם.
אז אני עושה פה save, שומר-דסק-טופ wordpress docker-compose-yaml. הנה, שמרנו אותו, זה הקובץ שלנו, זה, זה, זה, זה.
ואנחנו עושים פה Shift-Right-Click, אופן פאוור של ווינדו היר ולמעשה אנחנו יכולים כבר רק כשיש לנו את הקובץ הזה שאמור לעבוד אוטומט לעשות דוקר קומפוז דוקר קומפוז נקודה אקסי מי שרוצה אפשר לא לרשום נקודה אקסי אפ מינוס די ואז הוא ירוץ אבל לפני שאני לוחץ אנטר לפני שאנחנו מריצים אותו אני רוצה לראות מה הולך שמה בוא נראה את הדוגמה שלהם מה הם עושים הם מקימים לנו שני סרוויסים שני
קונטיינרים אחד db אחד wordpress דאטאבייס שלו מבוסס מ-SQL 5.7, הוא מוסיף לקונטיינר ווליום, שזה אומר קונן קבוע שמחובר לדיסק שלי, לארדיסק שלי.
אתם רואים פה למטה, הוא מקים קונן קבוע בשם dbdata, עם נתונים ברירת מחדל, עם כל ההגדרות ברירת מחדל, ומחבר אליו את הקונטיינר של db.
הוא אומר dbdata, הקונטיינר הזה, הווליום הזה יהיה מחובר לתוך הקונטיינר לשמה, ריסטארט אולו אולוויז ריסטארט זה אומר כל פעם להפעיל אותו environment משתנה סביבה מה יהיה הסיסמה הסודית הוא מעביר לו משתנה סביבה זוכרים בתוך המערכת ההפעלה
בתוך הקונטיינר אנחנו נוכל להריץ פסט ולראות את כל הערכים האלו ככה אני אומר לו מה אני רוצה ככה אני מדבר איתו כי אני ממשק גרפי אז אני אומר לו פה מה הסיסמה של רות לדוגמה סופר סיקרט סופר סיקרט פסוורד זאת תהיה הסיסמה של הרוט שלי.
מה הדאטאבייס? WordPress DB. מה השם של היוזר? וורטפרס, בוא נעשה את זה, וורטפרס יוזר. מה הסיסמה? וורטפרס פסוורד, אם אפס נעשה את זה. וורטפרס פסוורד, זו תהיה הסיסמה.
זה הדברים שאני מגדיר בתוך הדאטאבייס, שיהיה לי איזשהו MySQL יוזר, בוא נקרא לו just a user, ולזה נקרא just password וזה יהיה שם של הדאטאבייס וורדפרס דאטאבייס וזה שם של רוט שימו לב זה יוזר פשוט וזה רוט זה כל מה שהגדרנו בתוך הדאטאבייס וכשאנחנו נמחוק קונטיינר ונקים אותו מחדש כל המידע יישמר בתוך הווליום הזה שימו לב בתוך הווליום בדיסק הפיזי שלי הכל
יישמר אז כל זה למעשה כל זה למעשה זה הקמה של קונטיינר של דאטאבייס זה רק מהsql, הוא לא יודע אם יתחבר אליו. הקמנו מהsql עם איזשהו יוזר פשוט ויוזר שקוראים לו root וdatabase ריק.
שימו לב, זה מקים database ריק. הלאה, הקונטיינר השני נקרא לו wordpress container או סרוויס, זה הקונטיינר השני.
depends on זה מחכה שהזה יעבוד, רק בזמן שהdb הזה יעבוד, רק אחרי שהוא יעבוד יעלה הwordpress. בעצם הוא לא יתחיל את הקונטיינר עד שהוא לא עולה.
איזה אימייג' אנחנו לוקחים? אנחנו לא בונים לבד, אנחנו לוקחים מדוקר-האב וורדפרס לייטסט. איזה פורט פותחים? פורט 8000, ריסטארט אולווייז ואיזה משתנה סביבה?
עכשיו נניח אתם רוצים לקרוא על משהו, סתם מה זה אומר ריסטארט אולווייז? בא לכם לקרוא? אתם הולכים לדוקר קומפוז פייל באתר של דוקר, אתם רואים docker.com/compose/compose-file/compose- file-version-3/reference ואתם פה יכולים לחפש כל מה שאתם רוצים, תראו פה כל ההגדרות בצד נמצאות, לחפש את זה זה הרבה זמן, in a restart ואז אתם יכולים לראות כל,
no is default restart policy and does not restart a container under any circus attempts. בקיצור הוא לא מפעיל אף פעם קונטיינר לבד, אולווייז, אולווייז ריסטארט, קונטיינרס אולווייז ריסטארט, און פיילר, בקיצור יש לכם פה הסברים, און פיילר רק כשיש תקלה וזה.
אז אני רוצה שהקונטיינר יעבוד, אני עושה לו אולווייז. עכשיו, במקרה שלי אני מוחק את זה כי אני הולך לעשות הרבה ניסויים, אז בינתיים אני אמחק את זה. יופי.
ומשתנה סביבה, שימו לב אנחנו בתוך וורדפרס ויש לנו משתנה סביבה אומר לו איפה נמצא sql, שימו לב אנחנו בתוך הקונטיינר אחר, אחרת בתוך הקונטיינר הזה עובד רק אתר אינטרנט אין לו דאטאבייס אז אני אומר לו תקשיב הדאטאבייס שלך נמצא בdb 3306 3306 זה הפורט שלו וdb זה הdb הזה תלך לקונטיינר ההוא ותתחבר לדאטאבייס
שמה עם איזה יוזר אתה מתחבר עם just a user אתם רואים just a user עם איזה פסוורד עם הפסוורד הזה תתחבר ומה השם של הדאטאבייס השם של הדאטאבייס יהיה כזה דבר ואז הוא מתחבר לתוך הדאטאבייס הזה עם היוזר הזה וזהו.
הווליום הזה הוא ברמת סרוויס, הוא בראשי והוא מגדיר באופן כללי שיש לנו כזה ווליום, זה כמו Create Volume Defaulty.
אז יש לנו בעצם שני קונטיינרים. מה חסר לי כאן? חסר לי כאן תמיכה בניהול מסד נתונים בצורה גרפית, שזה נקרא PHP My Admin, תכף נראה את זה.
אז אנחנו עושים פה docker-compose-app ומה זה זה? לא יודע מה זה זה, docker-compose-app ומחכים שהוא יוריד. שימו לב, בפקודה אחת הוא מוריד לי את כל האימייג'ים שצריך, מגדיר אותם ומקים אותם והכל עושה אוטומט.
אני כתבתי רק פקודה אחת, docker-compose-app. זה היופי, שבן אדם יכול להוריד קובץ קומפוז, להריץ אותו והכל ירוץ לו אוטומט בלי שהוא יסתבך