עבודה עם docker compose

המאמר הקודם על דוקר
המאמר הבא על דוקר

במאמרים הקודמים הסברנו על עבודה עם דוקר. ה-תשתית בה”א הידיעה בכל מה שקשור לווב (ובכלל). עם דוקר, למי שלא זוכר, אני יכול לייצר איזו תשתית שבא לי מכל מחשב בלי להתאמץ. הרסתי והחרבתי? אין בעיה. מרימים שוב.

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

אני יכול להרים שני קונטיינרים באופן עצמאי כמו חמוריקו, אבל בסופו של דבר דוקר === פשטות ואני לא רוצה להזיע עם הוראות הכנה מסובכות בכל פעם שאני רוצה להרים משהו. גם אם זה משהו שמצריך כמה קונטיינרים. הפתרון? docker compose file. קובץ הגדרות בפורמט yaml קטן ונחמד שניתן להרצה בשורה אחת.

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

בגדול, יוצרים קובץ בשם docker-compose.yml ומציבים אותו בתיקיה כלשהי (לא משנה איזו תיקיה). הקובץ נראה כך:

version: '2'
# כאן יש לנו את כל הקונטיינרים
services:
# קונטיינר של מסד נתונים
  db:
    image: mysql
    environment:
      # Environment variable
      MYSQL_ROOT_PASSWORD: password
    ports:
      - "3306:3306"
# PHPMyAdmin container
  phpmyadmin:
    image: phpmyadmin/phpmyadmin
    depends_on:
      - db
    ports:
      - "8080:80"

הקובץ הוא די פשוט. הגרסה היא הגרסה של דוקר. בדרך כלל זה 2 או 3 (אלא אם כן אתם צריכים משהו מורכב). ואז מגיע services שבו אנחנו מפרטים את כל הקונטיינרים שאנחנו צריכים. במקרה הזה שניים. הראשון הוא db. שם אנו מפרטים את שם ה-image שזהה ל-image הרשמי (יכול להיות גם image שיצרנו כפי שהסברנו במאמר הזה). ואת משתני הסביבה שהקונטיינר צריך. במקרה הזה, כיוון שכאשר מרימים את הקונטיינר צריך לכתוב:

docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql

אנחנו צריכים להוסיף MYSQL_ROOT_PASSWORD ואת הערך שאנחנו רוצים לתת לו.

אם יש לנו תלויות, אנו מוסיפים אותן ל-depends_on. במקרה הזה, ה-phpmyadmin תלוי ב-db כי בלעדיו אין לו זכות קיום.

אחרי שסיימנו ליצור את קובץ ה-compose, אנו נפתח את הקונסולה של דוקר, שעליה למדנו במאמרים הקודמים ונכתוב docker-compose up

קונסולה של דוקר עם compose up
קונסולה של דוקר עם compose up

וזהו, הכל למעלה! אפשר פשוט להתחבר ל-IP של הדוקר עם הפורט של phpmyadmin ולראות איך מצליחים לעבוד. זה עד כדי כך פשוט. הכניסה היא עם root ושם המשתמש הוא מה שהגדרנו בקובץ ההגדרות. זה הכל. ומי שצריך הרחבה? יש בסרטון.

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

ועוד הערה: אל תשתמשו בקובץ שאנחנו מסבירים עליו פה לסביבת פרודקשן כמובן. שם משתמש root וסיסמה password זה לא רעיון טוב לשרת שפתוח לרשת החיצונית.
כדאי תמיד להשאר מעודכנים! הרשמו לעדכונים של האתר במייל! - המייל יישלח כל יום ראשון בעשר בבוקר ויכיל אך ורק את המאמרים שהתפרסמו באינטרנט ישראל. ללא ספאם, ללא הצפות, ללא בלגנים. אם יש לכם טלגרם, בדקו את ערוץ הטלגרם של האתר שבו אני מעדכן על פוסטים חדשים 🙂

אהבתם? לא אהבתם? דרגו!

לא אהבתי בכלללא אהבתיבסדראהבתיאהבתי מאוד (5 הצבעות, ממוצע: 5.00 מתוך 5)

תגיות: פורסם בקטגוריה: docker

יאללה, שתפו :)

אל תשארו מאחור! יש עוד מה ללמוד!

2 comments on “עבודה עם docker compose
  1. דרור הגיב:

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

  2. חננאל הגיב:

    המלצה שלי שכאשר עושים docker-compose up להוסיף את הפלאג -d על מנת להימנע מדפסות דיבאג מיותרות והתהליך ירוץ ברקע

כתיבת תגובה

האימייל לא יוצג באתר.

רישום