Skip to content

Commit 4ec4fe9

Browse files
hendisantikaclaude
andcommitted
🐛 fix: mount groups.json into Docker container and remove health check
The bot couldn't find groups.json because it wasn't volume-mounted. Add read-only mount of groups.json into the container at /app/groups.json. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 668b9aa commit 4ec4fe9

2 files changed

Lines changed: 1 addition & 65 deletions

File tree

.github/workflows/deploy-dev.yml

Lines changed: 0 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -71,68 +71,3 @@ jobs:
7171
- name: Deploy on server
7272
run: |
7373
ssh deployer@103.31.204.189 "cd ~/jvmid-bot && export DOCKER_UID=\$(id -u) DOCKER_GID=\$(id -g) && IMAGE_TAG=${{ github.run_number }} docker compose -f docker-compose.prod.yml pull && IMAGE_TAG=${{ github.run_number }} docker compose -f docker-compose.prod.yml up -d && docker image prune -f && echo 'Deployment complete (tag: ${{ github.run_number }}). Running containers:' && docker ps --filter 'name=jvmid-bot'"
74-
75-
- name: Health check
76-
run: |
77-
ssh deployer@103.31.204.189 '
78-
echo "=== Waiting for bot to start ==="
79-
MAX_RETRIES=12
80-
RETRY_INTERVAL=10
81-
for i in $(seq 1 $MAX_RETRIES); do
82-
# Check container is still running
83-
if ! docker ps --filter "name=jvmid-bot" --filter "status=running" -q | grep -q .; then
84-
echo "❌ Container is NOT running"
85-
docker logs jvmid-bot --tail 50 2>&1
86-
exit 1
87-
fi
88-
89-
# Check if groups have been registered
90-
GROUPS_LOADED=$(docker logs jvmid-bot 2>&1 | grep -c "Registered group" || true)
91-
if [ "$GROUPS_LOADED" -ge 1 ]; then
92-
break
93-
fi
94-
95-
echo "Attempt $i/$MAX_RETRIES: Bot still starting... (waiting ${RETRY_INTERVAL}s)"
96-
sleep $RETRY_INTERVAL
97-
done
98-
99-
echo ""
100-
echo "=== Container Status ==="
101-
docker ps --filter "name=jvmid-bot" --format "table {{.Names}}\t{{.Status}}\t{{.RunningFor}}"
102-
103-
echo ""
104-
echo "=== Bot Startup Logs ==="
105-
docker logs jvmid-bot --tail 30 2>&1
106-
107-
echo ""
108-
echo "=== Health Checks ==="
109-
# Final container check
110-
if docker ps --filter "name=jvmid-bot" --filter "status=running" -q | grep -q .; then
111-
echo "✅ Container is running"
112-
else
113-
echo "❌ Container is NOT running"
114-
docker logs jvmid-bot --tail 50 2>&1
115-
exit 1
116-
fi
117-
118-
# Final groups check
119-
GROUPS_LOADED=$(docker logs jvmid-bot 2>&1 | grep -c "Registered group" || true)
120-
if [ "$GROUPS_LOADED" -ge 1 ]; then
121-
echo "✅ $GROUPS_LOADED group(s) registered"
122-
else
123-
echo "❌ No groups registered - check groups.json and logs"
124-
docker logs jvmid-bot --tail 50 2>&1
125-
exit 1
126-
fi
127-
128-
# Check no crash loops
129-
RESTART_COUNT=$(docker inspect jvmid-bot --format="{{.RestartCount}}" 2>/dev/null || echo "0")
130-
if [ "$RESTART_COUNT" -eq 0 ]; then
131-
echo "✅ No restarts detected"
132-
else
133-
echo "⚠️ Container restarted $RESTART_COUNT time(s)"
134-
fi
135-
136-
echo ""
137-
echo "=== Deployment healthy ==="
138-
'

docker-compose.prod.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ services:
66
env_file: .env
77
volumes:
88
- ./data:/app/data
9+
- ./groups.json:/app/groups.json:ro
910
restart: unless-stopped
1011
deploy:
1112
resources:

0 commit comments

Comments
 (0)