From 7383af788487b2f18a6e3e9d1fd8cdd49e16dd17 Mon Sep 17 00:00:00 2001 From: Stefan Date: Mon, 15 Dec 2025 14:34:23 +0100 Subject: [PATCH] fix --- Dockerfile | 4 +++- scripts/docker-entrypoint.sh | 38 ++++++++++++++++++++++-------------- 2 files changed, 26 insertions(+), 16 deletions(-) diff --git a/Dockerfile b/Dockerfile index 7a44a53..ea516bf 100644 --- a/Dockerfile +++ b/Dockerfile @@ -45,9 +45,11 @@ RUN addgroup --system --gid 1001 nodejs RUN adduser --system --uid 1001 nextjs # Copy necessary files from builder -COPY --from=builder /app/public ./public +# Note: Copy public first, then standalone (which may have a minimal public/) COPY --from=builder /app/.next/standalone ./ COPY --from=builder /app/.next/static ./.next/static +# Explicitly copy all public assets (standalone doesn't include everything) +COPY --from=builder /app/public ./public # Copy scripts and node_modules needed for Wikipedia/opening setup COPY --from=builder /app/scripts ./scripts diff --git a/scripts/docker-entrypoint.sh b/scripts/docker-entrypoint.sh index d8023f7..98c129d 100755 --- a/scripts/docker-entrypoint.sh +++ b/scripts/docker-entrypoint.sh @@ -3,13 +3,28 @@ set -e echo "🔧 Chess Tutor Docker Entrypoint" -# Create directories if they don't exist -mkdir -p public/openings -mkdir -p public/wikipedia +# Create directories if they don't exist (with error handling) +mkdir -p public/openings 2>/dev/null || echo "⚠️ Cannot create public/openings (may already exist)" +mkdir -p public/wikipedia 2>/dev/null || echo "⚠️ Cannot create public/wikipedia (volume mounted)" +mkdir -p fixtures/tactics 2>/dev/null || echo "⚠️ Cannot create fixtures/tactics (volume mounted)" +mkdir -p downloads 2>/dev/null || echo "⚠️ Cannot create downloads (volume mounted)" + +# Check if opening database exists +if [ ! -f "public/openings/ecoA.json" ]; then + echo "⚠️ Warning: Opening database not found in public/openings/" + echo " Please ensure opening database files (ecoA-E.json, moveIndex.json) are in your build context" + echo " The application will continue but opening training may not work properly" +else + echo "✅ Opening database found" +fi # Check if Wikipedia cache needs to be populated -if [ ! -f "public/wikipedia/.initialized" ] || [ -z "$(ls -A public/wikipedia/*.json 2>/dev/null)" ]; then - echo "📚 Fetching Wikipedia opening data..." +# Count JSON files (excluding index.json and .gitkeep) +WIKI_COUNT=$(find public/wikipedia -name "*.json" -not -name "index.json" 2>/dev/null | wc -l | tr -d ' ') + +if [ "$WIKI_COUNT" -lt 10 ]; then + echo "📚 Wikipedia cache empty or incomplete (found $WIKI_COUNT files)" + echo " Fetching Wikipedia opening data..." npm run cache:wikipedia || echo "⚠️ Warning: Wikipedia fetch failed, continuing..." echo "🔗 Updating Wikipedia slugs in opening database..." @@ -18,18 +33,11 @@ if [ ! -f "public/wikipedia/.initialized" ] || [ -z "$(ls -A public/wikipedia/*. echo "📊 Rebuilding opening move index..." npm run build:opening-index || echo "⚠️ Warning: Move index rebuild failed, continuing..." - # Mark as initialized - touch public/wikipedia/.initialized + # Mark as initialized (with error handling for permissions) + touch public/wikipedia/.initialized 2>/dev/null || echo "⚠️ Cannot create marker file (permission issue, but cache is populated)" echo "✅ Wikipedia data initialized" else - echo "✅ Wikipedia cache already populated, skipping..." -fi - -# Check if opening database exists -if [ ! -f "public/openings/ecoA.json" ]; then - echo "⚠️ Warning: Opening database not found in public/openings/" - echo " Please ensure opening database files (ecoA-E.json, moveIndex.json) are available" - echo " The application will continue but opening training may not work properly" + echo "✅ Wikipedia cache already populated ($WIKI_COUNT files), skipping..." fi echo "🚀 Starting Chess Tutor application..."