You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

80 lines
1.9 KiB

services:
postgres:
image: swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/library/postgres:15-alpine
container_name: amazing_data_postgres
environment:
POSTGRES_DB: amazing_data
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
volumes:
- postgres_data:/var/lib/postgresql/data
- ../database/init.sql:/docker-entrypoint-initdb.d/init.sql
ports:
- "5432:5432"
networks:
- amazing_data_network
healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres"]
interval: 10s
timeout: 5s
retries: 5
redis:
image: swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/library/redis:7-alpine
container_name: amazing_data_redis
ports:
- "6379:6379"
volumes:
- redis_data:/data
networks:
- amazing_data_network
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 10s
timeout: 5s
retries: 5
backend:
build:
context: ../backend
dockerfile: Dockerfile
container_name: amazing_data_backend
environment:
DATABASE_URL: postgresql://postgres:postgres@postgres:5432/amazing_data
REDIS_URL: redis://redis:6379/0
SECRET_KEY: your-secret-key-change-in-production
DEBUG: "false"
ports:
- "8000:8000"
depends_on:
postgres:
condition: service_healthy
redis:
condition: service_healthy
networks:
- amazing_data_network
restart: unless-stopped
volumes:
- backend_data:/app/data
frontend:
build:
context: ../frontend
dockerfile: Dockerfile
container_name: amazing_data_frontend
ports:
- "3010:80"
depends_on:
- backend
networks:
- amazing_data_network
restart: unless-stopped
volumes:
postgres_data:
redis_data:
backend_data:
networks:
amazing_data_network:
driver: bridge