discord-music-bot/compose.yml

43 lines
1.5 KiB
YAML

# docker-compose.yml
services:
# The Rust Discord Bot Service
app:
# Build the image from the Dockerfile in the current directory (.)
build: .
container_name: discord-bot-app
restart: unless-stopped
# Pass environment variables from the .env file
env_file:
- .env
# Depend on the lavalink service to ensure it starts first (best practice)
depends_on:
- lavalink
# The LavaLink Service
lavalink:
# Use a Java Runtime Environment image (Alpine base for smaller size)
image: eclipse-temurin:17-jre-alpine
container_name: lavalink-server
restart: unless-stopped
# Set the working directory inside the container
working_dir: /opt/lavalink
# Mount the local Lavalink.jar and application.yml into the container
volumes:
- ./Lavalink.jar:/opt/lavalink/Lavalink.jar:ro,Z # Mount Jar read-only
- ./application.yml:/opt/lavalink/application.yml:ro,Z # Mount config read-only
- ./logs:/opt/lavalink/logs:Z # Mount logs directory (optional)
# Expose the LavaLink port to the host machine (optional, but useful for debugging)
# and makes it reachable by the 'app' service via Docker network.
ports:
- "2333:2333"
# Command to run LavaLink inside the container
command: ["java", "-jar", "Lavalink.jar"]
# Define networks (optional, Docker Compose creates a default one)
# networks:
# default:
# driver: bridge
# Define volumes (optional, if you need persistent data beyond logs)
# volumes:
# lavalink_logs: