✕ סגור 
צור קשר
תודה על ההתעניינות .

Thank you! Your submission has been received!

Oops! Something went wrong while submitting the form

איך להתחיל לעבוד עם DOCKER: כניסה לתוך קונטיינר

רן בר זיק
|
Jan 28, 2019
alt="blogs"
alt="blogs"
alt="blogs"
Event
title="Google"
Events

במאמר הקודם למדנו איך באמצעות Docker compose יוצרים סביבות מורכבות, או במקרה שלנו: וורדפרס.

וורדפרס היא סביבה שמורכבת משני קונטיינרים - הראשון הוא של המכונה המריצה את השרת עם קבצי ה-PHP והשני הוא של המכונה שמריצה את ה-MySQL. שתיהן עובדות ומסונכרות ביחד באמצעות Docker compose. שתיהן יחיו לנצח גם אם נוריד/נעלה את הקונטיינרים כי חיברנו אותן אל המחשב המארח באמצעות:

   # Keep your data

   volumes:

     - ./site:/var/www/html/

‍

את כל זה למדנו במאמר הקודם ואפילו עשינו סרטון נאה שמדגים את הכל. אבל מה הבעיה בסרטונים כאלו? שבדוגמאות הכל נפלא ונהדר אבל לאחר ההתקנה נתקלים בבעיות. ישנה תקלה שמתרחשת כאשר מנסים להיכנס לאתר הוורדפרס או למערכת אחרת ומגלה את מסך השגיאה הבא:

‍

‍

‍

תקלות יכולות לקרות. בדרך כלל ריסטרט פשוט של המחשב המארח יכול לפתור את הבעיה. אבל במידה ולא, אנחנו צריכים לבצע דיבאגינג (Debugging). הלוג של הקונטיינרים, כפי שאנו רואים אותו בטרמינל, יכול לשפוך אור, אבל לא תמיד. וזה הזמן להיכנס לקונטיינר ולבדוק.

אם זה אתר וורדפרס, סביר להניח שאם יש בעיה אנחנו צריכים לבדוק את הקונטיינר של וורדפרס. איך נכנסים לקונטיינר שרץ? ראשית פותחים Docker CLI נוסף באותו מיקום שבו ה-compose רץ. שנית, על מנת להכנס למכונה, כותבים:

docker-compose exec wordpress bash

ברגע שהקלדנו את זה, אנחנו בקונטיינר שרץ ב-docker-compose. אנחנו לא ב’חלונות’ או במערכת המארחת אלא בתוך לינוקס מלא. עכשיו אנחנו צריכים “לדבר” לינוקסית. לא כזה מסובך. ראשית, נתקין nano. עורך טקסטואלי לינוקסאי.

apt-get update && apt-get install nano

‍

בגלל שאנחנו root, אין צורך להקליד sudo.

זה השלב שבו אנחנו צריכים ליצור php.ini שבו יש הנחיות ליצירת לוג שגיאות והדפסתו. נכנס אל היכן שהוא אמור להיות:

cd /usr/local/etc/php

‍

ניצור ונערוך אותו באמצעות:

nano php.ini

‍

ונקליד בתוכו את הטקסט הבא:

log_errors = On

error_log = /tmp/error.log

‍

הדבר הבא הוא ליצור את קובץ הלוג /tmp/error.log ואת זה עושים כך:

touch /tmp/error.log && chmod 777 /tmp/error.log

‍

זהו, הכל מוכן! עכשיו נבצע ריסטארט לשרת. אנחנו חייבים לעשות את זה כי שינינו את קובץ ה-php.ini.

/etc/init.d/apache2 restart

‍

ברגע שאנחנו מקלידים את זה, אנו “עפים” מהמכונה. נכנס שוב אליה באמצעות:

docker-compose exec wordpress bash

‍

ועכשיו כדי לראות את לוג השגיאות של PHP אנו יכולים פשוט להקליד:

tail -f /tmp/error.log

‍

וזהו, מהרגע הזה כל שגיאה תראה על המסך.

‍

לוג שגיאות של PHP

‍

‍

אפשר כמובן לעשות כל מה שרוצים במכונה הזו או במכונה אחרת. הנקודה במאמר היא לא רק לבחון את שגיאות ה-PHP אלא גם לראות כמה זה קל להכנס לתוך כל קונטיינר גם עם compose ולעבוד בתוכו.

‍

‍

‍

‍

מאת: רן בר זיק, מתכנת ובלוגר

‍

במאמר הקודם למדנו איך באמצעות Docker compose יוצרים סביבות מורכבות, או במקרה שלנו: וורדפרס.

וורדפרס היא סביבה שמורכבת משני קונטיינרים - הראשון הוא של המכונה המריצה את השרת עם קבצי ה-PHP והשני הוא של המכונה שמריצה את ה-MySQL. שתיהן עובדות ומסונכרות ביחד באמצעות Docker compose. שתיהן יחיו לנצח גם אם נוריד/נעלה את הקונטיינרים כי חיברנו אותן אל המחשב המארח באמצעות:

   # Keep your data

   volumes:

     - ./site:/var/www/html/

‍

את כל זה למדנו במאמר הקודם ואפילו עשינו סרטון נאה שמדגים את הכל. אבל מה הבעיה בסרטונים כאלו? שבדוגמאות הכל נפלא ונהדר אבל לאחר ההתקנה נתקלים בבעיות. ישנה תקלה שמתרחשת כאשר מנסים להיכנס לאתר הוורדפרס או למערכת אחרת ומגלה את מסך השגיאה הבא:

‍

‍

‍

תקלות יכולות לקרות. בדרך כלל ריסטרט פשוט של המחשב המארח יכול לפתור את הבעיה. אבל במידה ולא, אנחנו צריכים לבצע דיבאגינג (Debugging). הלוג של הקונטיינרים, כפי שאנו רואים אותו בטרמינל, יכול לשפוך אור, אבל לא תמיד. וזה הזמן להיכנס לקונטיינר ולבדוק.

אם זה אתר וורדפרס, סביר להניח שאם יש בעיה אנחנו צריכים לבדוק את הקונטיינר של וורדפרס. איך נכנסים לקונטיינר שרץ? ראשית פותחים Docker CLI נוסף באותו מיקום שבו ה-compose רץ. שנית, על מנת להכנס למכונה, כותבים:

docker-compose exec wordpress bash

ברגע שהקלדנו את זה, אנחנו בקונטיינר שרץ ב-docker-compose. אנחנו לא ב’חלונות’ או במערכת המארחת אלא בתוך לינוקס מלא. עכשיו אנחנו צריכים “לדבר” לינוקסית. לא כזה מסובך. ראשית, נתקין nano. עורך טקסטואלי לינוקסאי.

apt-get update && apt-get install nano

‍

בגלל שאנחנו root, אין צורך להקליד sudo.

זה השלב שבו אנחנו צריכים ליצור php.ini שבו יש הנחיות ליצירת לוג שגיאות והדפסתו. נכנס אל היכן שהוא אמור להיות:

cd /usr/local/etc/php

‍

ניצור ונערוך אותו באמצעות:

nano php.ini

‍

ונקליד בתוכו את הטקסט הבא:

log_errors = On

error_log = /tmp/error.log

‍

הדבר הבא הוא ליצור את קובץ הלוג /tmp/error.log ואת זה עושים כך:

touch /tmp/error.log && chmod 777 /tmp/error.log

‍

זהו, הכל מוכן! עכשיו נבצע ריסטארט לשרת. אנחנו חייבים לעשות את זה כי שינינו את קובץ ה-php.ini.

/etc/init.d/apache2 restart

‍

ברגע שאנחנו מקלידים את זה, אנו “עפים” מהמכונה. נכנס שוב אליה באמצעות:

docker-compose exec wordpress bash

‍

ועכשיו כדי לראות את לוג השגיאות של PHP אנו יכולים פשוט להקליד:

tail -f /tmp/error.log

‍

וזהו, מהרגע הזה כל שגיאה תראה על המסך.

‍

לוג שגיאות של PHP

‍

‍

אפשר כמובן לעשות כל מה שרוצים במכונה הזו או במכונה אחרת. הנקודה במאמר היא לא רק לבחון את שגיאות ה-PHP אלא גם לראות כמה זה קל להכנס לתוך כל קונטיינר גם עם compose ולעבוד בתוכו.

‍

‍

‍

‍

מאת: רן בר זיק, מתכנת ובלוגר

‍

לפרטים נוספים ויצירת קשר עם נציג אורקל

תודה הודעתך התקבלה

הודעתך לא התקבלה - נסה שוב מאוחר יותר

רן בר זיק

הירשם לרשימת הדיוור של IsraelClouds

Thank you! Your submission has been received!

Oops! Something went wrong while submitting the form

מילון מונחיםהשירותים שלנו תנאי שימושהרשמה לניוזלטרמדיניות פרטיות