אינטרנט ישראל
  • ראשי
  • אודות רן בר-זיק ואינטרנט ישראל
  • ערוץ טלגרם
  • מסטודון
  • התחברו אלי בטוויטר
  • התחברו אלי בלינקדאין
  • ספר ג'אווהסקריפט
  • ראשי
  • אודות רן בר-זיק ואינטרנט ישראל
  • ערוץ טלגרם
  • מסטודון
  • התחברו אלי בטוויטר
  • התחברו אלי בלינקדאין
  • ספר ג'אווהסקריפט
ראשי » מדריכים » docker » וורדפרס על docker

וורדפרס על docker

רן בר-זיק דצמבר 2, 2018 9:12 am 11 תגובות

הרצה של וורדפרס על דוקר. קל, פשוט ומאוד מהיר ועל כל מחשב

המאמר הקודם על דוקרעבודה עם docker compose
המאמר הבא על דוקרכניסה לתוך קונטיינר דוקר ובדיקה אם יש בעיות
כדאי תמיד להשאר מעודכנים! אם יש לכם טלגרם, בדקו את ערוץ הטלגרם של האתר שבו אני מעדכן על פוסטים חדשים 🙂 אם אתם רוצים ללמוד תכנות באופן מקיף ומסודר, הצטרפו לאלפי הלומדים בפרויקט "ללמוד ג'אווהסקריפט בעברית" שמלמד לתכנת בג'אווהסקריפט, ב-Node.js ובריאקט וגם מלמד על תרומה לקוד פתוח. גם ספרים דיגיטליים וגם ספרים מודפסים. בשיתוף הקריה האקדמית אונו ובתמיכת חברות מובילות כגון Wix, Outbrain, Elementor, Iron Source, Chegg, Really Good ועוד.

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

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

יוצרים תיקיה במחשב ומכניסים לתוכה קובץ בשם docker-compose.yml. ניגשים לחלק של וורדפרס באתר של docker ומאתרים את קובץ ה-compose שמתאים לנו. 

version: '3.1'

services:

  wordpress:
    image: wordpress
    restart: always
    ports:
      - 8080:80
    environment:
      WORDPRESS_DB_HOST: db
      WORDPRESS_DB_USER: exampleuser
      WORDPRESS_DB_PASSWORD: examplepass
      WORDPRESS_DB_NAME: exampledb

  db:
    image: mysql:5.7
    restart: always
    environment:
      MYSQL_DATABASE: exampledb
      MYSQL_USER: exampleuser
      MYSQL_PASSWORD: examplepass
      MYSQL_RANDOM_ROOT_PASSWORD: '1'

מה שמעניין פה יותר מהכל הוא משתני הסביבה שמפורטים ב-environment. אני חושב שאין צורך להסביר עליהם יותר מדי. רק חשוב להזהיר שאם הדוקר שלכם יושב על סביבה חיצונית (לא סביבת פיתוח) אז זה רעיון ממש ממש רע להשתמש בססמה נוסח "examplepass" בסביבת פרודקשן.

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

version: '3.1'

services:

  wordpress:
    image: wordpress
    restart: always
    ports:
      - 8080:80
    environment:
      WORDPRESS_DB_HOST: db
      WORDPRESS_DB_USER: exampleuser
      WORDPRESS_DB_PASSWORD: examplepass
      WORDPRESS_DB_NAME: exampledb
    # Keep your data
    volumes: 
      - ./site:/var/www/html/

  db:
    image: mysql:5.7
    restart: always
    environment:
      MYSQL_DATABASE: exampledb
      MYSQL_USER: exampleuser
      MYSQL_PASSWORD: examplepass
      MYSQL_RANDOM_ROOT_PASSWORD: '1'
    # Keep your data
    volumes: 
      - ./db:/var/lib/mysql

בגדול, תחת ה-volumes יש את ההגדרה. ראשית התיקיה המקומית (יחסית לקובץ ה-compose) ושנית ההגדרה בתוך המכונה. כך למשל:

./site:/var/www/html/

אומר שהתיקיה site שתהיה בתיקיה שבה יש את קובץ ה-compose במחשב שלנו, תהיה בעצם תיקית ה-var/www/html של המכונה שמחזיקה את קבצי הוורדפרס. הכי קל בעולם. כשנריץ את קובץ ה-compose הוא יצור את התיקיה וגם יאכלס אותה בקבצי הוורדפרס שאותם הוא יוריד.

זה גם נותן לנו persistence.  כלומר גם אם נכבה את דוקר ואת המחשב ואחר כך נרים את הכל מחדש – הקבצים יישארו והמידע יישאר. 

כדאי תמיד להשאר מעודכנים! אם יש לכם טלגרם, בדקו את ערוץ הטלגרם של האתר שבו אני מעדכן על פוסטים חדשים 🙂 אם אתם רוצים ללמוד תכנות באופן מקיף ומסודר, הצטרפו לאלפי הלומדים בפרויקט "ללמוד ג'אווהסקריפט בעברית" שמלמד לתכנת בג'אווהסקריפט, ב-Node.js ובריאקט וגם מלמד על תרומה לקוד פתוח. גם ספרים דיגיטליים וגם ספרים מודפסים. בשיתוף הקריה האקדמית אונו ובתמיכת חברות מובילות כגון Wix, Outbrain, Elementor, Iron Source, Chegg, Really Good ועוד.
המדריך על דוקר
docker

11 תגובות

  1. יהודה דויטש הגב דצמבר 2, 2018 בשעה 9:33 am

    תיקון קטן:
    כל הקוד של וורדפרס נמצא כבר בתוך ה-docker image, כך שטעינת התיקייה site לתוך /var/www/html מונע אפשרות לשדרג בהמשך או כרגע אם המטרה היא לצרכי בדיקות.

    מה שעדיף לעשות, הוא רק למפות את ./site-content:/var/www/html/wp-content, זה יאפשר להתעסק רק עם התוכן המשתנה של וורדפרס מבלי לטעון לתיקייה הנוכחית את כל קוד המקור של וורדפרס.

    ועוד משהו קטן, כדאי תמיד לציין tag, כך שאם אתה רוצה לעבוד על גרסה כלשהי של וורדפרס 4.9 שים wordpress:4.9, כמובן שאפשר להיות ספציפיים יותר, אבל גם אם הכוונה היא לעבוד על ה-latest, כדאי לציין גם את זה.

    • יהודה דויטש הגב דצמבר 2, 2018 בשעה 9:37 am

      ועוד עוד משהו קטן… מקומית לא כדאי לעבוד עם restart: always, כל פעם שתאתחל את המחשב יהיה שימוש במעבד וזיכרון שיקח לך כמה דקות להבין מאיפה זה מגיע. כדאי לשנות ל-unless-stopped.
      https://docs.docker.com/config/containers/start-containers-automatically/

  2. שלמה הגב דצמבר 2, 2018 בשעה 9:48 am

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

    אתה בעצם שומר על הדיסק את התוכן של הdb ככה שאם הקונטיינר יפול תוכל לשחזר אותו?
    אני מתייחס לשורה של – ./db:/var/lib/mysql

    • כפיר הגב דצמבר 2, 2018 בשעה 1:23 pm

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

  3. ג'וני הגב דצמבר 2, 2018 בשעה 10:08 am

    היי
    תותחים..ממש עניני ומופרט…
    שאלה קטנה..מה ההבדל בין שמירה שביצעתם ל pvc..?
    תודה

  4. אודי הגב דצמבר 2, 2018 בשעה 5:34 pm

    שאלה – נניח שעד עכשיו השתמשתי ב-xampp ויש לי התקנת וורדפרס בתיקיית ה-htdocs עם DB בתיקיה הרלוונטית של xampp והכל.

    האם אני יכול ליצור קובץ docker-compose.yml עם הנתונים התואמים להתקנה הקיימת והוא יריץ לי אותה בקונטיינר?

  5. יותם הגב דצמבר 6, 2018 בשעה 2:00 pm

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

    • יותם הגב דצמבר 10, 2018 בשעה 8:13 pm

      מסתבר שזה אירוע כללי בחלונות 10 כבר שנה וחצי. הזוי:
      https://github.com/docker/for-win/issues/584#issuecomment-286792858

  6. Eylonsu הגב דצמבר 17, 2018 בשעה 7:01 pm

    בווינדוס 10 HOME הImage של DB עושה ריסט אינסופי..
    יש למישהו פתרון?
    גם הוספה של
    command: "–innodb_use_native_aio=0"
    לא עזרה

  7. עומר הגב מרץ 19, 2019 בשעה 9:55 pm

    סדרת מדריכים מעולה (עזרה לי להרים מכונת פיתוח בדקות בודדות) עם זאת אני רואה שהקבצים תחת user www-data מה שלא מאפשר לי לשמור את הקבצים שאני עורך בצורה נוחה.

    יש פתרון דוקרי לנושא?

  8. משתמש אנונימי (לא מזוהה) הגב ינואר 26, 2021 בשעה 3:17 pm

    הסדר לא משנה?
    קודם הרי אמורים להקים db ורק אז את האפליקציה שמעליו.

    כאן בקובץ docker-compose.yml. כתבת הפוך

השארת תגובה

ביטול

ללמוד ג'אווהסקריפט בעברית

ללמוד לתכנת ג'אווהסקריפט בעברית שגייס יותר משלוש מאות אלף שקל ולמעלה מ-2000 תומכים - בואו ללמוד עכשיו איך לתכנת.

רשימת הנושאים
  • מדריכים
    • ריאקט
    • טייפסקריפט
    • ECMAScript 6
    • ES20XX
    • Node.js
    • Express
    • רספברי פיי
    • Babel
    • docker
    • MongoDB
    • Git
    • לימוד MySQL
    • SASS
    • jQuery
    • CSS3
    • HTML 5
    • SVN
    • LESS
  • פיתוח אינטרנט
    • פתרונות ומאמרים על פיתוח אינטרנט
    • jQuery Scripts
    • jQuery למתקדמים
    • יסודות בתכנות
    • נגישות אינטרנט
  • חדשות אינטרנט
  • מידע כללי על אינטרנט
    • רשת האינטרנט
    • בניית אתרי אינטרנט
  • rss logo

    לכל המאמרים

    לכל המאמרים שפורסמו באינטרנט ישראל משנת 2008 ועד עכשיו.
  • rss logo

    RSS Feed

    משתמשים בקורא RSS? אם כן, עקבו אחרי אינטרנט ישראל באמצעות פיד ה-RSS!
    מה זה RSS?
  • Twitter logo

    עקבו אחרי בטוויטר

    בחשבון הטוויטר שלי אני מפרסם עדכונים מהירים על חדשות בתחום התכנות והיזמות, התרעות על מצבי חירום ורכילות בוערת על תחום הווב.
    מה זה טוויטר?
  • facebook like image

    ערוץ הטלגרם של אינטרנט ישראל

    בערוץ הטלגרם של אינטרנט ישראל אני מפרסם את הפוסטים של באתר וכן עדכונים טכנולוגיים נוספים.
    מה זה טלגרם?
  • github logo

    הפרויקטים שלי בגיטהאב

    הפרויקטים שאני כותב ושוחררו לציבור ברישיון קוד פתוח נמצאים ברובם בגיטהאב.
חיפוש

כל הזכויות שמורות לרן בר-זיק ולאינטרנט ישראל | מדיניות הפרטיות של אתר אינטרנט ישראל | אתר אינטרנט ישראל נגיש לפי תקן WCAG 2.0 AA | הצהרת הנגישות של האתר | אבטחת מידע ודיווח על בעיית אבטחת מידע

גלילה לראש העמוד