sparkles-cat-bot/DOCKER-GUIDE.md

134 lines
2.9 KiB
Markdown

# Docker Guide for Cat Bot
This guide will help you run the Discord cat bot using Docker, which provides an isolated and consistent environment for the bot to run.
## Prerequisites
- [Docker](https://docs.docker.com/get-docker/) installed on your system
- [Docker Compose](https://docs.docker.com/compose/install/) installed on your system
- A valid Discord bot token in your `.env` file
## Setup
1. Make sure your `.env` file is properly configured with your Discord bot token and other settings:
```
DISCORD_TOKEN=your_discord_bot_token
# Message response chance (0-100)
MESSAGE_RESPONSE_CHANCE=10
# Voice channel settings
MIN_VOICE_JOIN_INTERVAL=300
MAX_VOICE_JOIN_INTERVAL=1800
MIN_VOICE_STAY_DURATION=60
MAX_VOICE_STAY_DURATION=300
MIN_VOICE_MEOW_INTERVAL=5
MAX_VOICE_MEOW_INTERVAL=30
# Cat personalization
CAT_PRONOUN=their
```
2. Add your cat sound files to the `src/audio` directory (create it if it doesn't exist):
- meow1.mp3
- meow2.mp3
- meow3.mp3
- purr.mp3
- hiss.mp3
- yowl.mp3
## Running the Bot
### Easy Method
Use the included helper script:
```bash
# Make it executable
chmod +x run-docker.sh
# Run it
./run-docker.sh
```
This script will set the correct user permissions, build, and run the container showing logs.
### Manual Method
From the project root directory:
```bash
# Export your user ID and group ID
export UID=$(id -u)
export GID=$(id -g)
# Start the container
docker-compose up -d
# View logs
docker-compose logs -f
```
### Stopping the Bot
To stop the bot:
```bash
docker-compose down
```
## Updating the Bot
If you make changes to the bot code:
1. Stop the bot: `docker-compose down`
2. Rebuild the image: `docker-compose build`
3. Start the bot again: `docker-compose up -d`
## Troubleshooting
### Audio File Issues
If the bot isn't playing sounds in voice channels:
1. Check that your audio files exist in the `src/audio` directory
2. Verify they're in MP3 format and match the expected filenames
3. Look at the container logs to see if the files are being detected:
```bash
docker-compose logs | grep "audio"
```
### Bot Token Issues
If the bot can't connect to Discord:
1. Make sure your `.env` file is properly mounted in the container
2. Check that your token is valid and privileged intents are enabled
3. Verify logs for any connection errors:
```bash
docker-compose logs
```
### File Permission Issues
If you encounter file permission problems:
1. Use the `run-docker.sh` script which sets proper user IDs
2. Or manually set the user ID when running:
```bash
export UID=$(id -u) GID=$(id -g)
docker-compose up -d
```
### Container Not Starting
If the container fails to start or continuously restarts:
1. Check the logs: `docker-compose logs`
2. Verify your container has network access to reach Discord's servers
3. Make sure you have ffmpeg installed in the container:
```bash
docker-compose exec cat-bot apk info | grep ffmpeg
```