בדף הזה מוסבר איך להשתמש ב-Cloud Code for VS Code Remote Development, כלומר, איך לפתוח את בסיס הקוד בקונטיינר מרוחק שבו האפליקציה נבנית, עוברת ניפוי באגים ונפרסת. כך נוצרת אפליקציה ניידת, ללא קשר למערכת ההפעלה של מחשב הפיתוח.
דרישות מוקדמות
בנוסף להגדרה שמתוארת במאמר התקנת התוסף של Cloud Code, צריך להתקין את חבילת התוספים Remote Development של VS Code.
הגדרה
כדי להגדיר תיקייה
.devcontainerעם Dockerfile וקובץ תצורהDevcontainer.jsonשמוגדרים לשפה שבה אתם משתמשים, לוחצים על
Open a Remote Window (פתיחת חלון מרוחק) > Add Dev Container Config Files (הוספת קובצי הגדרות של מארח פיתוח).
אפשר גם לפעול לפי השלבים במאמר בנושא פיתוח מרחוק במאגרי תמונות (Containers).אחרי שתפעלו לפי ההנחיות, סביבת העבודה שלכם תכלול:
Dockerfile – מגדיר קובץ אימג' של קונטיינר שמכיל את הכלים למפתחים שצריך להתקין בקונטיינר לפיתוח מרחוק.
Devcontainer.json— מציין לתוסף VS Code Remote Tools איך להפעיל את קונטיינר הפיתוח המרוחק.
פותחים את Dockerfile ומוסיפים הוראות להתקנה של Google Cloud CLI ושל Skaffold. הוראות עדכניות מופיעות במדריכי ההתקנה.
ב-Dockerfile, מוסיפים הוראות להעתקת ההגדרות של gcloud CLI ו-Skaffold ב-localhost לפני הפקודה
>> $HOME/.bashrc. לחלופין, אפשר לשכתב את הפקודות כדי להתקין את ה-CLI של gcloud ואת Skaffold.# Copy localhost's ~/.kube/config file into the container and swap out localhost # for host.docker.internal whenever a new shell starts to keep them in sync. RUN echo '\n\ if [ "$SYNC_LOCALHOST_KUBECONFIG" == "true" ]; then\n\ mkdir -p $HOME/.kube\n\ cp -r $HOME/.kube-localhost/* $HOME/.kube\n\ sed -i -e "s/localhost/host.docker.internal/g" $HOME/.kube/config\n\ \n\ fi' \ if [ "$SYNC_LOCALHOST_GCLOUD" == "true" ]; then\n\ mkdir -p $HOME/.config/gcloud\n\ cp -r $HOME/.gcloud-localhost/* $HOME/.config/gcloud\n\ \n\ fi' \פותחים את הקובץ
Devcontainer.jsonומוסיפים את ארגומנטי ההרצה הבאים כדי להעתיק את ההגדרות של ה-CLI של gcloud ושל Skaffold מ-localhost:"-e", "SYNC_LOCALHOST_KUBECONFIG=true", "-e", "SYNC_LOCALHOST_GCLOUD=true",אחרי שמוסיפים לקבצים את התוכן הנדרש, לוחצים על
פתיחת חלון מרוחק.
דוגמה לקובץ devcontainer.json
קובץ devcontainer.json אומר לתוסף Remote Container אילו יציאות לחשוף בקונטיינר, איך לטעון כוננים ואילו תוספים להתקין בקונטיינר המרוחק. בדוגמה הבאה של קובץ devcontainer.json מצוין שהתוסף Remote Container צריך להתקין את התוסף Cloud Code ל-VS Code:
"runArgs": [
"-v","/var/run/docker.sock:/var/run/docker.sock",
"--mount", "type=bind,source=${env:HOME}${env:USERPROFILE}/.kube,target=/root/.kube-localhost",
"--mount", "type=bind,source=${env:HOME}${env:USERPROFILE}/.config/gcloud,target=/root/.gcloud-localhost",
"-e", "SYNC_LOCALHOST_KUBECONFIG=true",
"-e", "SYNC_LOCALHOST_GCLOUD=true",
"--cap-add=SYS_PTRACE", "--security-opt", "seccomp=unconfined"
]
המאמרים הבאים
- אפשר לקרוא את מאמרי העזרה של Visual Studio בנושא פיתוח מרחוק באמצעות SSH.
- אפשר לעבור על הדרכה כדי להריץ את Visual Studio Code במאגר Docker באמצעות התוסף Dev containers.