דלגו לתוכן

כרטיסי באגי סביבה

  • סימפטום: Temporary failure in name resolution ב-pip install בתוך docker build.
  • סיבה: /etc/resolv.conf מצביע ל-stub של systemd-resolved (127.0.0.53), שלא נגיש מתוך container של build.
  • תיקון: להגדיר dns ב-/etc/docker/daemon.json ולהפעיל מחדש את Docker (דורש sudo). הפקודות המדויקות, כולל איך מוצאים את כתובת ה-DNS: docker/overview.
  • סימפטום: ה-image הראשון נדחף, השני נכשל: blob unknown to registry.
  • סיבה: ב-Docker 29 ברירת המחדל היא containerd image store, ו-cross-repo mount שלו שבור מול registry של gitlab.com.
  • תיקון: לכבות את containerd-snapshotter ב-daemon.json (קוד ה-pipeline לא משתנה). מזגו את המפתח לקובץ הקיים ואל תדרסו אותו; ואז מריצים את ה-pipeline המלא מחדש, כי המעבר מרוקן את ה-images. פירוט: docker/overview.
  • סימפטום: bad interpreter, \r: command not found.
  • סיבה: סיומות שורה של Windows בקובץ .sh.
  • תיקון והרשאה:
runs on: any shell
sed -i 's/\r$//' <FILE>
chmod +x <FILE>

איך מוודאים: bash -n <FILE> בלי פלט; grep -c $'\r' <FILE> מחזיר 0. עוד: git/hygiene.

  • סימפטום: job תקוע ב-pending או no runner for tags.
  • סיבה: ה-runner צריך גם scope תואם וגם tag תואם. בתרגול ב-Free לא היה group runner, ה-runner היה של project אחד.
  • תיקון: להפעיל את ה-runner ל-project הנוסף; לא להריץ gitlab-runner run (ה-service כבר רץ; רק register).
runs on: VM
sudo gitlab-runner list

איך מוודאים: ה-runner מופיע; ה-job מתחיל. פירוט: gitlab/runners.

  • סימפטום: argocd: command not found, glab, yq.
  • סיבה: לא מותקנים. זה לא באג.
  • תיקון: Argo דרך kubectl ו-UI; GitLab דרך ה-UI; לקריאת YAML jq + kubectl ... -o json.

איך מוודאים: command -v kubectl helm jq git docker מדפיס נתיבים.

  • סימפטום: kubectl ב-Mac לא מתחבר; ה-runner לא יכול kubectl.
  • סיבה: kubeconfig קיים רק ב-VM, ולמשתמש של ה-runner אין אחד בכוונה (CI לא נוגע ב-cluster).
  • תיקון: kubectl/helm ב-VM; git ב-Mac או ב-VM (חייבים לדעת auth גם ב-VM).
runs on: VM
sudo -u gitlab-runner bash -lc 'echo $KUBECONFIG; ls ~/.kube 2>&1'

איך מוודאים: אין kubeconfig למשתמש ה-runner.