בעיות ב-CLI של Migrate to Containers

במאמר הזה מתוארים פתרונות עקיפים לכמה בעיות שאתם עשויים להיתקל בהן במהלך העבודה עם כלי ה-CLI של Migrate to Containers.

פעולת ההעתקה נכשלת בגלל שגיאות הרשאה

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

במקרים כאלה, יכול להיות שתופיע הודעת שגיאה דומה להודעה הבאה:

E   rsync   rsync: send_files failed to open "/var/lib/lxcfs/cgroup/blkio/blkio.reset_stats": Permission denied (13)
...
E   rsync   rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1865) [generator=3.2.7]
Error: failed to copy fs from GCP VM "petclinic-springboot": failed copying vm to "/tmp/copy-1411243774": exit status 23

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

לדוגמה, כדי להחריג את הספרייה /var/lib/lxcfs מפעולת ההעתקה, מוסיפים את המסנן המותאם אישית הבא לקובץ המסננים:

- /var/lib/lxcfs

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

פעולת ההעתקה באמצעות gcloud נכשלת בגלל בעיות באימות למכונה

אם משתמשים ב-gcloud כדי להריץ את הפקודה copy עם sudo, יכול להיות שבמקרים מסוימים פעולת ההעתקה תיכשל בגלל בעיות באימות למכונת המקור. הבעיה הזו מתרחשת כי הפקודה gcloud מופעלת עם אותו משתמש-על שמפעיל את כלי שורת הפקודה (CLI) של Migrate to Containers, ולמשתמש-העל אין את אותם פרטי כניסה כמו למשתמש הרגיל.

במקרים כאלה, יכול להיות שתופיע הודעת שגיאה דומה להודעה הבאה:

E ssh init ERROR: (gcloud.compute.ssh) There was a problem refreshing your current auth tokens: ('Failed to retrieve TOKEN from the Google Compute Engine metadata service. Status: 404 Response:\nb\'"No service account scopes specified."\'', <google.auth.transport.requests._Response object at 0x7fecf5c75550>)
E ssh init Please run:
E ssh init
E ssh init  $ gcloud auth login
E ssh init
E ssh init to obtain new credentials.
E ssh init
E ssh init If you have already logged in with a different account:
E ssh init
E ssh init    $ gcloud config set account ACCOUNT
E ssh init
E ssh init to select an already authenticated account to use.
Error: failed to initiate a connection with GCP VM "tomcat-server": exit status 1

כדי לעקוף את הבעיה הזו, מנסים להריץ את הפקודה copy באמצעות gcloud בלי sudo.

הפקודה analyze נכשלת כשמשתמשים בגרסת Snap של Docker

אם אתם משתמשים בגרסת ה-Snap של Docker, הפקודה analyze תיכשל.

במקרים כאלה, יכול להיות שתופיע הודעת שגיאה דומה להודעה הבאה:

I       Unpacking file system...
I       Running analysis...
Error: running analysis failed: failed to run container: Error response from daemon: invalid mount config for type "bind": bind source path does not exist: PATH

כדי לעקוף את הבעיה הזו, צריך להתקין מחדש את Docker בלי להשתמש ב-Snap. מידע נוסף זמין במאמר בנושא התקנת Docker Engine.