דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. Docker עזרה הבנה

Docker עזרה הבנה

מתוזמן נעוץ נעול הועבר תכנות
4 פוסטים 3 כותבים 184 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • dovidD מחובר
    dovidD מחובר
    dovid ניהול
    כתב ב נערך לאחרונה על ידי
    #1

    אני באמצע לקרוא בתיעוד פה https://docs.docker.com/get-started/part2/
    את הDockerfile הבא:

    # Use the official image as a parent image
    FROM node:current-slim
    
    # Set the working directory
    WORKDIR /usr/src/app
    
    # Copy the file from your host to your current location
    COPY package.json .
    
    # Run the command inside your image filesystem
    RUN npm install
    
    # Inform Docker that the container is listening on the specified port at runtime.
    EXPOSE 8080
    
    # Run the specified command within the container.
    CMD [ "npm", "start" ]
    
    # Copy the rest of your app's source code from your host to your image filesystem.
    COPY . .
    

    בCOPY הראשון מועתק רק הקובץ package.json, ובשני שבשורה האחרונה מועתקים כל קבצי הקוד שבתיקיה לתוך הקונטיינר.
    בשורה האחרונה הם מעתיקים את קוד המקור לתוך הקונטיינר,
    אני מבין שהדברים מתבצעים לפי סדר ואפילו מחכים לסיום כל שלב (סינכורני), אז איך הnpm start ירוץ בלי שום קבצים?

    מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

    בכל נושא אפשר ליצור קשר dovid@tchumim.com

    yossizY תגובה 1 תגובה אחרונה
    0
    • yossizY מנותק
      yossizY מנותק
      yossiz
      השיב לdovid ב נערך לאחרונה על ידי yossiz
      #2

      The CMD directive is the first example of specifying some metadata in your image that describes how to run a container based on this image. In this case, it’s saying that the containerized process that this image is meant to support is npm start.

      אם הבנתי נכון, זה אומר שהפקודה CMD לא מריץ את הפקודה, (זה מה ש-RUN עושה), זה רק מגדיר מה יהיה פקודת ברירת מחדל שהקונטיינר יריץ

      יותר הרחבה כאן

      Note: Don’t confuse RUN with CMD. RUN actually runs a command and commits the result; CMD does not execute anything at build time, but specifies the intended command for the image.

      📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

      תגובה 1 תגובה אחרונה
      3
      • dovidD מחובר
        dovidD מחובר
        dovid ניהול
        כתב ב נערך לאחרונה על ידי
        #3

        תודה רבה! זו בדיוק הייתה הטעות שלי.

        מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

        בכל נושא אפשר ליצור קשר dovid@tchumim.com

        תגובה 1 תגובה אחרונה
        1
        • A מנותק
          A מנותק
          aaron
          כתב ב נערך לאחרונה על ידי
          #4

          @dovid
          כמו ש @yossiz אמר, CMD מיועד להגדיר איזה פקודה תרוץ בעת הרצת הדוקר.
          פעמים שמשלבים את זה עם ENTRYPOINT כך שאפשר לשנות פרמטרים לפקודת הרצה בקלות בלי לשנות את הפקודה עצמה

          אם תהית למה מבצעים COPY מספר פעמים במקום להעתיק את הכל כבר בהתחלה,
          התשובה היא בגלל המבנה של השכבות, זאת אומרת שכל ועוד לא היה שינוי בקבצי המקור של שכבה מסוימת - למשל במקרה שלך package.json - אז רק השכבות העליונות יותר יבנו מחדש - אלו שהיה בהם שינוי.
          כך, ברגע שרק באחת השכבות העליונות מוסיפים את כל קבצי האפליקציה - תהליך הbuild רוב הפעמים יהיה קצר יותר ולא יכלול התקנה של תלויות מחדש..

          aaron.tchumim@gmail.com
          Hetzner - שרתים וירטואליים ופיזיים במחירים מעולים (קישור שותפים)

          ווצאפ API - תיעוד שירות API לא רשמי.

          תגובה 1 תגובה אחרונה
          3

          בא תתחבר לדף היומי!
          • התחברות

          • אין לך חשבון עדיין? הרשמה

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