4.6 KiB
4.6 KiB
Start Blockscout Container and Build Assets
Problem
The Blockscout container is not running, so we can't build assets or access it.
Solution
Quick Fix Commands (From VMID 5000)
# Step 1: Find and start the container
BLOCKSCOUT_CONTAINER=$(docker ps -a | grep blockscout | grep -v postgres | awk '{print $1}' | head -1)
docker start $BLOCKSCOUT_CONTAINER
# Step 2: Wait for container to initialize (30-60 seconds)
echo "Waiting for Blockscout to start..."
sleep 30
# Step 3: Build static assets
docker exec -it $BLOCKSCOUT_CONTAINER mix phx.digest
# Step 4: Verify assets were built
docker exec -it $BLOCKSCOUT_CONTAINER test -f priv/static/cache_manifest.json && \
echo "✅ Assets built" || echo "❌ Assets still missing"
Alternative: Use Docker Compose
If Blockscout is managed via docker-compose:
cd /opt/blockscout
# Start Blockscout
docker compose up -d blockscout
# Wait for startup
sleep 30
# Build assets
BLOCKSCOUT_CONTAINER=$(docker ps | grep blockscout | grep -v postgres | awk '{print $1}' | head -1)
docker exec -it $BLOCKSCOUT_CONTAINER mix phx.digest
Automated Script
Run the automated script:
# From Proxmox host
cd /home/intlc/projects/proxmox/explorer-monorepo
./scripts/start-blockscout-and-build-assets.sh
Or from inside VMID 5000:
cd /home/intlc/projects/proxmox/explorer-monorepo
./scripts/start-blockscout-and-build-assets.sh
Troubleshooting
Container Won't Start
Check why it's not starting:
docker logs $BLOCKSCOUT_CONTAINER 2>&1 | tail -50
Common issues:
-
Database connection failed - Check if postgres container is running:
docker ps | grep postgres -
Port conflict - Check if port 4000 is in use:
netstat -tlnp | grep 4000 -
Missing environment variables - Check docker-compose.yml or .env file
Assets Build Fails
If mix phx.digest fails:
-
Try alternative method:
docker exec -it $BLOCKSCOUT_CONTAINER npm run deploy -
Check if dependencies are installed:
docker exec -it $BLOCKSCOUT_CONTAINER mix deps.get docker exec -it $BLOCKSCOUT_CONTAINER npm install --prefix apps/block_scout_web/assets -
Build manually inside container:
docker exec -it $BLOCKSCOUT_CONTAINER bash # Inside container: cd apps/block_scout_web/assets npm install npm run deploy mix phx.digest
Container Starts Then Stops
Check logs for errors:
docker logs $BLOCKSCOUT_CONTAINER 2>&1 | grep -i error | tail -20
Common causes:
- Database migrations not run (but we verified they are)
- Missing environment variables
- Port conflicts
- Memory/resource limits
Fix:
# Check docker-compose resource limits
grep -A 10 "blockscout:" /opt/blockscout/docker-compose.yml | grep -E "(memory|cpus)"
# Increase if needed or check system resources
free -h
Verification
After starting and building assets:
# 1. Check container is running
docker ps | grep blockscout
# 2. Check assets exist
BLOCKSCOUT_CONTAINER=$(docker ps | grep blockscout | grep -v postgres | awk '{print $1}' | head -1)
docker exec -it $BLOCKSCOUT_CONTAINER ls -la priv/static/cache_manifest.json
# 3. Check Blockscout is responding
curl -s http://localhost:4000/api/v2/stats | head -20
# 4. Check logs for errors
docker logs $BLOCKSCOUT_CONTAINER 2>&1 | tail -30
Complete Fix Sequence
# From VMID 5000 - Complete fix sequence
# 1. Start container
BLOCKSCOUT_CONTAINER=$(docker ps -a | grep blockscout | grep -v postgres | awk '{print $1}' | head -1)
docker start $BLOCKSCOUT_CONTAINER
# 2. Wait for startup
echo "Waiting 30 seconds for Blockscout to initialize..."
sleep 30
# 3. Build assets
docker exec -it $BLOCKSCOUT_CONTAINER mix phx.digest
# 4. Verify assets
docker exec -it $BLOCKSCOUT_CONTAINER test -f priv/static/cache_manifest.json && \
echo "✅ Assets built successfully" || echo "❌ Assets still missing"
# 5. Check if Blockscout is responding
curl -s http://localhost:4000/api/v2/stats && \
echo "✅ Blockscout API working" || echo "⚠️ API not responding yet"
# 6. Check logs
docker logs $BLOCKSCOUT_CONTAINER 2>&1 | tail -20
Next Steps
After starting the container and building assets:
- ✅ Verify container is running:
docker ps | grep blockscout - ✅ Verify assets exist:
docker exec -it blockscout test -f priv/static/cache_manifest.json - ✅ Verify API responds:
curl http://localhost:4000/api/v2/stats - ✅ Check docker-compose startup command is correct
- ✅ Ensure container stays running (check logs for crashes)