- Added Docker services for Bitcoin Core UI and LND UI, providing web interfaces for both applications. - Updated the startup script to improve image pulling process and service readiness checks with retries. - Modified the app view to open the Bitcoin Core UI in a new tab instead of routing through the app. - Removed the Bitcoin Core Vue component as it is no longer needed, streamlining the UI structure. - Excluded backend services from the app listing to improve clarity in the Docker package scanner.
3.0 KiB
3.0 KiB
Docker Health Check Fix - Complete
Problem
The start-docker-apps.sh script was failing because:
- Health checks were too impatient (only 5 seconds wait)
- The script exited with error if services weren't ready immediately
- Services like Grafana and SearXNG need 30-60 seconds to fully start
- Fedimint image had a platform mismatch warning on ARM64 Macs
Solutions Applied
1. Improved Health Check Logic (start-docker-apps.sh)
Before:
# Wait 5 seconds, check once, fail if not ready
sleep 5
check_service "Grafana" "http://localhost:3000"
check_service "SearXNG" "http://localhost:8082"
# If not ready, exit with error
After:
# Wait up to 60 seconds with retries
MAX_ATTEMPTS=30
ATTEMPT=0
while [ $ATTEMPT -lt $MAX_ATTEMPTS ]; do
READY_COUNT=0
check_service "Grafana" "http://localhost:3000" && ((READY_COUNT++)) || true
check_service "SearXNG" "http://localhost:8082" && ((READY_COUNT++)) || true
check_service "Endurain" "http://localhost:8084" && ((READY_COUNT++)) || true
check_service "MorphOS" "http://localhost:8081" && ((READY_COUNT++)) || true
if [ $READY_COUNT -ge 2 ]; then
echo " ✅ Core services are ready!"
break
fi
sleep 2
((ATTEMPT++))
done
# Non-blocking - informational only
if [ $READY_COUNT -lt 2 ]; then
echo " ℹ️ Some services are still starting (this is normal)"
echo " 💡 They will be available shortly. Check with: docker compose ps"
fi
Key improvements:
- Retries up to 30 times (60 seconds total)
- Non-blocking (doesn't fail if services aren't ready)
- Informational messages to reassure users
- Continues startup even if services are still initializing
2. Fixed Fedimint Platform Warning (docker-compose.yml)
Before:
fedimint:
image: fedimint/fedimintd:v0.3.0
container_name: archy-fedimint
ports:
- "8173:8173"
After:
fedimint:
image: fedimint/fedimintd:v0.3.0
container_name: archy-fedimint
platform: linux/amd64 # Emulate x86 on ARM Macs
ports:
- "8173:8173"
This tells Docker to use x86 emulation for Fedimint on ARM Macs, eliminating the warning.
Testing
Run the dev server again:
cd scripts
bash dev-start.sh
# Choose option 2 (Full stack)
Expected behavior:
- Docker containers create and start successfully
- Health check waits patiently for services
- Script continues even if some services are still initializing
- No platform mismatch warnings
- Backend and frontend start without errors
Files Modified
/Users/dorian/Projects/archy/start-docker-apps.sh- Improved health check logic/Users/dorian/Projects/archy/docker-compose.yml- Added platform specification for Fedimint
Next Steps
Once you confirm this works:
- Bitcoin Core should appear in the My Apps section
- You should be able to launch it and see the custom UI
- Stop/Start functionality should work
- All 13 Docker apps should be running in the background