- Archive: 85 agent .txt files → docs/archive/agents/legacy_txt/ - Scripts: Move 110 shell scripts → scripts/ (keep deploy.sh in root) - Models: Move 18 .safetensors → ml/models/checkpoints/training_artifacts/ - Delete: 34 directories (~33GB freed) - target/, coverage_*, test artifacts - Build: Clean 14 build artifacts (.rlib, .o, .pid, binaries) - Tests: Move 14 .rs files → tests/standalone/ - SQL: Move 5 files → sql/ (keep init-db*.sql for Docker) - Wave 153: Archive to docs/archive/historical/wave153/ - Docs: Archive 9 markdown files to wave_d/reports/ and historical/ Total impact: ~34GB freed (both waves), root directory cleaned from 583 to ~40 essential files Directory count reduced from 65 to 31 (52% reduction) All historical data preserved in organized archive structure
125 lines
4.1 KiB
Bash
Executable File
125 lines
4.1 KiB
Bash
Executable File
#!/bin/bash
|
|
# Dockerfile.runpod Update Verification Script
|
|
# Date: 2025-10-23
|
|
|
|
echo "=========================================="
|
|
echo "Dockerfile.runpod Update Verification"
|
|
echo "=========================================="
|
|
echo ""
|
|
|
|
# 1. Check for AWS references
|
|
echo "1. Checking for AWS/S3 references..."
|
|
if ! grep -iq "aws\|s3\|amazon" Dockerfile.runpod 2>/dev/null; then
|
|
echo " ✅ PASS: Zero AWS/S3/Amazon references found"
|
|
else
|
|
echo " ❌ FAIL: Found AWS/S3/Amazon references"
|
|
exit 1
|
|
fi
|
|
echo ""
|
|
|
|
# 2. Check for Tesla V100 reference
|
|
echo "2. Checking for Tesla V100 reference..."
|
|
if grep -q "Tesla V100" Dockerfile.runpod 2>/dev/null; then
|
|
V100_COUNT=$(grep -c "Tesla V100" Dockerfile.runpod)
|
|
echo " ✅ PASS: Tesla V100 documented ($V100_COUNT references)"
|
|
else
|
|
echo " ❌ FAIL: Tesla V100 not found in Dockerfile"
|
|
exit 1
|
|
fi
|
|
echo ""
|
|
|
|
# 3. Check for private Docker Hub registry
|
|
echo "3. Checking for private Docker Hub registry (jgrusewski/foxhunt)..."
|
|
REGISTRY_COUNT=$(grep -c "jgrusewski/foxhunt" Dockerfile.runpod 2>/dev/null)
|
|
if [ "$REGISTRY_COUNT" -gt 5 ]; then
|
|
echo " ✅ PASS: Private registry documented ($REGISTRY_COUNT references)"
|
|
else
|
|
echo " ❌ FAIL: Private registry not consistently used (found $REGISTRY_COUNT, need >5)"
|
|
exit 1
|
|
fi
|
|
echo ""
|
|
|
|
# 4. Check for embedded test data
|
|
echo "4. Checking for embedded test data..."
|
|
if grep -q "COPY test_data/\*.parquet /workspace/test_data/" Dockerfile.runpod; then
|
|
echo " ✅ PASS: Test data COPY instruction found"
|
|
else
|
|
echo " ❌ FAIL: Test data COPY instruction missing"
|
|
exit 1
|
|
fi
|
|
echo ""
|
|
|
|
# 5. Verify test data files exist
|
|
echo "5. Verifying test data files exist..."
|
|
TEST_DATA_COUNT=$(ls test_data/*.parquet 2>/dev/null | wc -l)
|
|
if [ "$TEST_DATA_COUNT" -eq 9 ]; then
|
|
echo " ✅ PASS: All 9 Parquet files present"
|
|
ls -1 test_data/*.parquet | sed 's/^/ - /'
|
|
else
|
|
echo " ❌ FAIL: Expected 9 Parquet files, found $TEST_DATA_COUNT"
|
|
exit 1
|
|
fi
|
|
echo ""
|
|
|
|
# 6. Check test data size
|
|
echo "6. Checking test data size..."
|
|
TEST_DATA_SIZE=$(du -sm test_data 2>/dev/null | awk '{print $1}')
|
|
if [ "$TEST_DATA_SIZE" -lt 20 ]; then
|
|
echo " ✅ PASS: Test data size is ${TEST_DATA_SIZE}MB (optimal)"
|
|
else
|
|
echo " ⚠️ WARNING: Test data size is ${TEST_DATA_SIZE}MB (larger than expected)"
|
|
fi
|
|
echo ""
|
|
|
|
# 7. Check VOLUME directive
|
|
echo "7. Checking VOLUME directive (test_data should NOT be present)..."
|
|
if grep 'VOLUME' Dockerfile.runpod | grep -q 'test_data'; then
|
|
echo " ❌ FAIL: test_data still in VOLUME directive (should be removed)"
|
|
exit 1
|
|
else
|
|
echo " ✅ PASS: test_data removed from VOLUME directive"
|
|
fi
|
|
echo ""
|
|
|
|
# 8. Verify entry point
|
|
echo "8. Verifying default entry point..."
|
|
if grep -q 'ENTRYPOINT.*train_tft_parquet' Dockerfile.runpod; then
|
|
echo " ✅ PASS: Default entry point set to train_tft_parquet"
|
|
else
|
|
echo " ❌ FAIL: Entry point not configured correctly"
|
|
exit 1
|
|
fi
|
|
echo ""
|
|
|
|
# 9. Check for private registry instructions
|
|
echo "9. Checking for private registry instructions..."
|
|
if grep -q "PRIVATE" Dockerfile.runpod; then
|
|
PRIVATE_COUNT=$(grep -c "PRIVATE" Dockerfile.runpod)
|
|
echo " ✅ PASS: Private registry instructions documented ($PRIVATE_COUNT mentions)"
|
|
else
|
|
echo " ❌ FAIL: Private registry instructions missing"
|
|
exit 1
|
|
fi
|
|
echo ""
|
|
|
|
# 10. Final summary
|
|
echo "=========================================="
|
|
echo "✅ ALL CHECKS PASSED"
|
|
echo "=========================================="
|
|
echo ""
|
|
echo "Summary:"
|
|
echo " - Zero AWS/S3 references"
|
|
echo " - Tesla V100 documented as minimum GPU"
|
|
echo " - Docker Hub registry: jgrusewski/foxhunt (PRIVATE)"
|
|
echo " - 9 Parquet files embedded (~${TEST_DATA_SIZE}MB total)"
|
|
echo " - VOLUME directive updated (test_data removed)"
|
|
echo " - Entry point configured for TFT training"
|
|
echo ""
|
|
echo "Next Steps:"
|
|
echo " 1. Build image: docker build -f Dockerfile.runpod -t jgrusewski/foxhunt:latest ."
|
|
echo " 2. Test locally: docker run --gpus all jgrusewski/foxhunt:latest"
|
|
echo " 3. Push to Docker Hub: docker push jgrusewski/foxhunt:latest"
|
|
echo " 4. Set repository to PRIVATE in Docker Hub"
|
|
echo " 5. Deploy on Runpod with Tesla V100"
|
|
echo ""
|