Files
MyClub/DOCKER_STATUS_REPORT.md
T
Tomas Dvorak 63700eedb2 dev day #67
2025-10-21 15:02:05 +02:00

7.0 KiB

Docker Environment Status Report

Generated: October 21, 2025 @ 09:45 AM
Environment: Development (Docker)


🟢 Overall Status: OPERATIONAL

All critical services are running and accepting connections. Minor health check issue on frontend (cosmetic - does not affect functionality).


📊 Container Status

1. Backend (myclub-backend) HEALTHY

  • Container ID: 2f6ca942fc79
  • Image: fotbal-club-backend
  • Status: Up 16 minutes
  • Health: HEALTHY
  • Port: 8080:8080 (Host:Container)
  • CPU Usage: 0.00%
  • Memory: 49.86 MiB / 2 GiB
  • Network I/O: 1.51MB sent / 1.11MB received
  • Health Check: wget http://localhost:8080/api/v1/health PASSING

Backend API Response:

{
    "status": "ok"
}

Recent Activity (Last 50 lines):

  • API endpoints responding normally (200 OK)
  • Database queries executing successfully
  • Cache system operational
  • CORS configured properly
  • All routes accessible

Sample Requests:

GET /api/v1/settings → 200 (2.96ms)
GET /api/v1/players → 200 (2.99ms)
GET /api/v1/articles → 200 (1.91ms)
GET /api/v1/sponsors → 200 (2.97ms)

2. Frontend (myclub-frontend) ⚠️ UNHEALTHY (but functional)

  • Container ID: 26adece8cbc1
  • Image: fotbal-club-frontend
  • Status: Up 16 minutes
  • Health: ⚠️ UNHEALTHY (false positive)
  • Port: 3000:80 (Host:Container)
  • CPU Usage: 0.00%
  • Memory: 15.95 MiB / 1 GiB
  • Network I/O: 435kB sent / 21.2MB received
  • HTTP Status: 200 OK (verified with curl)

Health Check Issue: The container health check is failing because:

Health Check: wget http://localhost:80/
Error: "wget: can't connect to remote host: Connection refused"

Root Cause: The health check is trying localhost:80 from inside the container, but Nginx might be binding differently. However, the frontend IS working perfectly when accessed from the host machine at http://localhost:3000.

Recent Activity:

  • Serving React application successfully
  • All static assets loading (main.js, main.css)
  • ⚠️ Some missing image files (expected - need to be uploaded):
    • /images/club-logo.png → 404
    • /images/club-opponent.png → 404
    • /images/news/placeholder.jpg → 404
    • /dist/img/logo-club-empty.svg → 404

User Access Logs:

GET /admin/hraci → 200
GET /admin/clanky → 200
GET /admin/o-klubu → 200
GET / → 200 (homepage working)

3. Database (myclub-db) HEALTHY

  • Container ID: 7f5ef9341913
  • Image: postgres:15-alpine
  • Status: Up 16 minutes
  • Health: HEALTHY
  • Port: 5432:5432 (Host:Container)
  • CPU Usage: 0.00%
  • Memory: 100.8 MiB / 2 GiB
  • Network I/O: 732kB sent / 1.13MB received
  • Health Check: pg_isready -U postgres PASSING

Database Configuration:

User: postgres
Database: fotbal_club
Encoding: UTF-8
Max Connections: 200
Shared Buffers: 256MB

Recent Activity:

  • Accepting connections
  • Query execution normal
  • GORM queries optimized and using prepared statements
  • No connection pool exhaustion

Sample Queries:

SELECT * FROM "sponsors" WHERE "deleted_at" IS NULL  0.079ms
SELECT * FROM "articles" WHERE featured = 't'  0.062ms
SELECT * FROM "players"  executing normally

🌐 Port Mappings & Accessibility

Service Internal Port External Port Accessible From Host Status
Frontend 80 3000 http://localhost:3000 Working
Backend API 8080 8080 http://localhost:8080 Working
Database 5432 5432 localhost:5432 Working

Verification:

✅ curl http://localhost:3000/ → HTTP 200
✅ curl http://localhost:8080/api/v1/health → {"status": "ok"}
✅ Backend accessible from frontend (API calls working)

🔧 Important Notes

1. Rich Text Editor CSS Fix Status

⚠️ The CSS fix I applied is NOT yet active in the running container

The changes made to fix the rich text editor visibility are in the source code:

  • frontend/src/index.tsx - CSS imports added
  • frontend/src/components/common/CustomRichEditor.tsx - Cleaned up

However: The Docker container is running a pre-built version of the frontend from before the fix.

To apply the fix, you need to rebuild:

# Option 1: Rebuild just the frontend
docker-compose build frontend
docker-compose up -d frontend

# Option 2: Rebuild everything
docker-compose down
docker-compose build
docker-compose up -d

2. Frontend Health Check False Positive

The frontend shows as "unhealthy" but is actually working perfectly. This is a Docker health check configuration issue, not a functional problem.

To fix permanently (optional): Edit docker-compose.yml line 76:

# CURRENT (failing):
healthcheck:
  test: ["CMD", "wget", "--spider", "-q", "http://localhost:80/"]

# BETTER:
healthcheck:
  test: ["CMD", "wget", "--spider", "-q", "http://127.0.0.1:80/"]
  # or
  test: ["CMD", "curl", "-f", "http://127.0.0.1:80/"]

3. Missing Static Files

These are expected missing files that should be uploaded via the admin panel:

  • Club logo
  • Club opponent logo
  • News placeholder images

These don't affect functionality - just placeholder images won't show.


📝 Action Items

Immediate (To Apply Rich Editor Fix):

  1. ⚠️ Rebuild frontend container to get the CSS fix:

    docker-compose build frontend
    docker-compose restart frontend
    
  2. 🔄 Clear browser cache after restart:

    • Hard refresh: Ctrl+Shift+R (Linux/Windows) or Cmd+Shift+R (Mac)

Optional Improvements:

  1. 🔧 Fix frontend health check in docker-compose.yml
  2. 📸 Upload club logos via admin panel to eliminate 404s
  3. 🗄️ Verify database migrations are complete

🎯 Performance Summary

Metric Status Details
Backend Response Time Excellent 0.5-12ms average
Memory Usage Normal All containers < 50% of limits
CPU Usage Idle 0% (no active load)
Network I/O Healthy Minimal overhead
Database Queries Optimized Using prepared statements

🚀 Quick Reference Commands

# View logs
docker logs myclub-backend --tail 50
docker logs myclub-frontend --tail 50
docker logs myclub-db --tail 50

# Check health
docker ps
docker inspect myclub-backend --format='{{.State.Health.Status}}'

# Restart services
docker-compose restart backend
docker-compose restart frontend

# Rebuild and restart
docker-compose build frontend
docker-compose up -d

# Access database
docker exec -it myclub-db psql -U postgres -d fotbal_club

Conclusion

System is fully operational with one cosmetic health check warning that doesn't affect functionality.

Next Step: Rebuild the frontend container to apply the rich text editor CSS fix, then verify the editor is visible in the admin panel.