| Docker daemon not running | sudo systemctl start docker or open Docker Desktop |
| User not in docker group | sudo usermod -aG docker $(whoami) then newgrp docker |
| Jenkins container fails to start | Check port 8080 not in use: lsof -i :8080 |
Jenkins docker: not found | Mount Docker CLI: -v /usr/bin/docker:/usr/bin/docker:ro |
Jenkins AccessDeniedException on docker.sock | Use group_add with host docker GID: stat -c '%g' /var/run/docker.sock |
Jenkins AccessDeniedException on host path | Mount project dir into Jenkins container volume |
| Jenkins Pipeline stuck in queue | Check built-in node is NORMAL mode, not EXCLUSIVE |
Jenkins API 403 No valid crumb | Use cookie jar + Jenkins-Crumb header (see jenkins-patterns.md) |
| Jenkins Pipeline XML newlines stripped | Use --data-binary (not -d) + CDATA wrapper |
| Jenkins admin warnings (CSP/node) | Dismiss via Groovy console (see jenkins-patterns.md) |
| SonarQube OOM | Increase vm.max_map_count: sudo sysctl -w vm.max_map_count=262144 |
| Docker build cache issues | docker builder prune to clean build cache |
| K8s pod CrashLoopBackOff | kubectl logs <pod> + kubectl describe pod <pod> |
| Registry push fails | 確認 docker push arcana.boo/arcana/... 使用 HTTPS 域名;若 TLS 錯誤檢查 certbot 憑證是否過期 |
| Registry 502 Bad Gateway | SELinux 問題:sudo setsebool -P httpd_can_network_connect 1;或檢查 registry container 是否在運行 |
| Registry unreachable | Oracle Cloud 需同時開放 Security Group 和 Subnet Security List 的 port 80/443 |
| Fastlane auth failure | Re-run fastlane match or fastlane spaceauth |
| Pipeline timeout | Increase Jenkins job timeout in Jenkinsfile |
| Health check failing | Verify endpoint path and container port mapping |
| Image too large | Review multi-stage build, check .dockerignore |
Jenkins docker compose: unknown flag | Mount compose plugin: -v /usr/libexec/docker/cli-plugins:/usr/libexec/docker/cli-plugins:ro |
| Jenkins node offline (disk space) | docker system prune -af, remove unused images; min 1GB free for jenkins_home |
| ESP32 image pull slow (~11GB ARM64) | Pre-pull with docker pull espressif/idf:v5.5.2; use docker compose for cached builds (reference project now on IDF v6.x — prefer matching the project's idf version) |
| STM32 CMake compiler test fails | Add set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY) to toolchain cmake |
Android aapt2 Syntax error: "(" unexpected on ARM64 | aapt2 is x86_64 only; use platform: linux/amd64 in docker-compose.yml + install binfmt: docker run --rm --privileged tonistiigi/binfmt --install amd64 |
Android aapt2 Could not open ld-linux-x86-64.so.2 | Must use full amd64 image (not just binfmt on ARM64 image); set platforms: [linux/amd64] in compose build config |
HarmonyOS .npmrc registry errors | Must have dual registry: registry=https://registry.npmjs.org/ (default) + @ohos:registry=https://repo.harmonyos.com/npm/ (scoped) |
HarmonyOS modelVersion mismatch | modelVersion: "6.0.0" must be in BOTH hvigor/hvigor-config.json5 AND root oh-package.json5 |
HarmonyOS analyzeEnabled invalid | Use analyze: "normal" (not analyzeEnabled: true/false) in hvigor-config.json5 execution section |
| HarmonyOS HAP packaging fails (no Java) | JDK 17 required for HAP packaging: openjdk-17-jdk-headless in Dockerfile |
Mac Mini SSH Too many authentication failures | SSH agent 嘗試過多 key;使用專用 key:ssh -i ~/.ssh/macmini.key jrjohn@192.168.11.104 |
| Mac Mini Xcode not found | 需從 App Store 安裝完整 Xcode(Command Line Tools 不夠);安裝後執行 sudo xcode-select -s /Applications/Xcode.app |
Mac Mini Jenkins agent java not found | 設定 Java Path: /opt/homebrew/opt/openjdk@17/libexec/openjdk.jdk/Contents/Home/bin/java |
iOS pipeline swift build fails with no destinations | 確認 Xcode 已安裝且 xcode-select -p 指向正確路徑 |
| Mac Mini Homebrew permission denied | 設定 NOPASSWD sudo:echo 'jrjohn ALL=(ALL) NOPASSWD:ALL' > /etc/sudoers.d/jrjohn |