במצב exec של Dockerfile, מערך ה-JSON הוא כבר רשימת הארגומנטים:

CMD ["curl", "--noproxy", "*", "https://example.com/"]

כאן curl מקבל את --noproxy ואת * כארגומנטים נפרדים. הכוכבית אינה מתרחבת לשמות קבצים מפני שאף מעטפת פקודה אינה מפרשת את המצב הזה.

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

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

המשמעות של --noproxy * ב-curl היא לעקוף את ה-proxy עבור כל המארחים. זו בחירת ניתוב, לא מבחן כללי של פורמט ארגומנטים. השתמשו בו רק כשהמסלול הישיר הוא המדיניות הרצויה. אם אתם צריכים עקיפה צרה יותר, ספקו את הערך המתאים באותו מבנה של ארגומנט אחד לכל רכיב.

מאמרים קשורים