tinode → cat docker-compose.yml
services:
# MySQL Database
db:
image: mysql:8.0
container_name: tinode-db
restart: always
environment:
- MYSQL_ROOT_PASSWORD=YourSecurePassword # Change this
# Remove MYSQL_DATABASE=tinode here to prevent the conflict
volumes:
- db-data:/var/lib/mysql
healthcheck:
test: ["CMD", "mysqladmin" ,"ping", "-h", "localhost", "-u", "root", "-pYourSecurePassword"]
interval: 5s
timeout: 5s
retries: 10
# Tinode Server
tinode:
image: tinode/tinode-mysql:latest
container_name: tinode-srv
restart: always
ports:
- "127.0.0.1:6060:6060" # Bound to localhost so only your Nginx can reach it
environment:
- STORE_USE_ADAPTER=mysql
# Use root to allow the Tinode init script to create the DB itself
- MYSQL_DSN=root:YourSecurePassword@tcp(db:3306)/tinode?parseTime=true
# Switch this to 'false' after the very first successful start
- RESET_DB=true
depends_on:
db:
condition: service_healthy
volumes:
db-data: