90 lines
2.6 KiB
Markdown
90 lines
2.6 KiB
Markdown
# Docker Management & Troubleshooting Guide
|
|
|
|
This guide provides the necessary commands to build, manage, and troubleshoot the BTC Bot Docker environment.
|
|
|
|
## 1. Manual Build Commands
|
|
Always execute these commands from the **project root** directory.
|
|
|
|
```bash
|
|
# Build the Data Collector
|
|
docker build --network host -f docker/Dockerfile.collector -t btc_collector .
|
|
|
|
# Build the API Server
|
|
docker build --network host -f docker/Dockerfile.api -t btc_api .
|
|
|
|
# Build the Bot (Ensure the tag matches docker-compose.yml)
|
|
docker build --no-cache --network host -f docker/Dockerfile.bot -t btc_ping_pong_bot .
|
|
```
|
|
|
|
---
|
|
|
|
## 2. Managing Containers
|
|
Run these commands from the **docker/** directory (`~/btc_bot/docker`).
|
|
|
|
### Restart All Services
|
|
```bash
|
|
# Full reset: Stop, remove, and recreate all containers
|
|
docker-compose down
|
|
docker-compose up -d
|
|
```
|
|
|
|
### Partial Restart (Specific Service)
|
|
```bash
|
|
# Rebuild and restart only the bot (ignores dependencies like DB)
|
|
docker-compose up -d --no-deps ping_pong_bot
|
|
```
|
|
|
|
### Stop/Start Services
|
|
```bash
|
|
docker-compose stop <service_name> # Temporarily stop
|
|
docker-compose start <service_name> # Start a stopped container
|
|
```
|
|
|
|
---
|
|
|
|
## 3. Checking Logs
|
|
Use these commands to diagnose why a service might be crashing or restarting.
|
|
|
|
```bash
|
|
# Follow live logs for the Bot (last 100 lines)
|
|
docker-compose logs -f --tail 100 ping_pong_bot
|
|
|
|
# Follow live logs for the Collector
|
|
docker-compose logs -f btc_collector
|
|
|
|
# Follow live logs for the API Server
|
|
docker-compose logs -f api_server
|
|
|
|
# View logs for ALL services combined
|
|
docker-compose logs -f
|
|
```
|
|
|
|
---
|
|
|
|
## 4. Troubleshooting Checklist
|
|
|
|
| Symptom | Common Cause & Solution |
|
|
| :--- | :--- |
|
|
| **`.env` Parsing Warning** | Check for `//` comments (use `#` instead) or hidden characters at the start of the file. |
|
|
| **Container "Restarting" Loop** | Check logs! Usually missing `API_KEY`/`API_SECRET` or DB connection failure. |
|
|
| **"No containers to restart"** | Use `docker-compose up -d` first. `restart` only works for existing containers. |
|
|
| **Database Connection Refused** | Ensure `DB_PORT=5433` is used for `host` network mode. Check if port is open with `netstat`. |
|
|
| **Code Changes Not Applying** | Rebuild the image (`--no-cache`) if you changed `requirements.txt` or the `Dockerfile`. |
|
|
|
|
---
|
|
|
|
## 5. Useful Debugging Commands
|
|
```bash
|
|
# Check status of all containers
|
|
docker-compose ps
|
|
|
|
# List all local docker images
|
|
docker images
|
|
|
|
# Check if the database port is listening on the host
|
|
netstat -tulnp | grep 5433
|
|
|
|
# Access the shell inside a running container
|
|
docker exec -it btc_ping_pong_bot /bin/bash
|
|
```
|