MPVN_CMP/docker-compose.yml

79 lines
1.8 KiB
YAML
Raw Normal View History

services:
mysql:
image: mysql:8.0
container_name: energy_mysql
environment:
MYSQL_ROOT_PASSWORD: rootpass
MYSQL_DATABASE: energy_saas
MYSQL_USER: energy
MYSQL_PASSWORD: energypass
ports:
- "3306:3306"
command: --default-authentication-plugin=mysql_native_password --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
volumes:
- mysql_data:/var/lib/mysql
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
interval: 10s
timeout: 5s
retries: 10
redis:
image: redis:7-alpine
container_name: energy_redis
volumes:
- redis_data:/data
tdengine:
image: tdengine/tdengine:3.0.2.0
container_name: energy_tdengine
ports:
- "6030:6030"
- "6041:6041"
environment:
TAOS_FQDN: tdengine
volumes:
- tdengine_data:/var/lib/taos
backend:
build:
context: ./backend
dockerfile: Dockerfile
container_name: energy_backend
environment:
DB_HOST: mysql
DB_PORT: 3306
DB_USER: energy
DB_PASS: energypass
DB_NAME: energy_saas
REDIS_HOST: redis
REDIS_PORT: 6379
JWT_SECRET: energysmartsecret
PORT: 3000
MQTT_URL: wss://mqtt.yourcompany.com:8083/mqtt
depends_on:
mysql:
condition: service_healthy
redis:
condition: service_started
ports:
- "3001:3000"
frontend:
build:
context: ./frontend
dockerfile: Dockerfile
container_name: energy_frontend
environment:
VITE_BACKEND_URL: http://backend:3000
VITE_MQTT_URL: wss://mqtt.yourcompany.com:8083/mqtt
depends_on:
- backend
ports:
- "8080:80"
volumes:
mysql_data:
redis_data:
tdengine_data: