This commit is contained in:
2026-07-12 16:25:08 +01:00
commit 2d3ff69c6e
+82
View File
@@ -0,0 +1,82 @@
version: "3.9"
services:
app:
build:
context: .
dockerfile: Dockerfile
container_name: signage-app
restart: unless-stopped
ports:
- "3000:3000"
environment:
NODE_ENV: production
PORT: 3000
DB_HOST: mysql
DB_PORT: 3306
DB_NAME: signage
DB_USER: signage_user
DB_PASSWORD: signage_password
REDIS_URL: redis://redis:6379
UPLOAD_DIR: /app/uploads
volumes:
- uploads:/app/uploads
depends_on:
mysql:
condition: service_healthy
redis:
condition: service_healthy
networks:
- signage-net
mysql:
image: mysql:8.4
container_name: signage-mysql
restart: unless-stopped
ports:
- "3306:3306"
environment:
MYSQL_DATABASE: signage
MYSQL_USER: signage_user
MYSQL_PASSWORD: signage_password
MYSQL_ROOT_PASSWORD: root_password
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", "-uroot", "-proot_password"]
interval: 10s
timeout: 5s
retries: 10
networks:
- signage-net
redis:
image: redis:7-alpine
container_name: signage-redis
restart: unless-stopped
ports:
- "6379:6379"
volumes:
- redis_data:/data
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 10s
timeout: 5s
retries: 10
networks:
- signage-net
volumes:
mysql_data:
redis_data:
uploads:
networks:
signage-net:
driver: bridge