version: '3.8' services: backend: build: context: support-portal-backend dockerfile: Dockerfile restart: always ports: - "8080:8080" environment: MYSQL_HOST: db MYSQL_USER: support_portal_user MYSQL_PASSWORD: support_portal_password MYSQL_DATABASE: support-portal volumes: # Persist uploaded files - blog-uploads:/app/uploads networks: - angular-spring - spring-mysql depends_on: db: condition: service_healthy db: image: mysql:8.0.19 environment: MYSQL_USER: support_portal_user MYSQL_PASSWORD: support_portal_password MYSQL_DATABASE: support-portal MYSQL_ROOT_PASSWORD: root_password restart: always healthcheck: test: ["CMD", "mysqladmin", "ping", "-h", "127.0.0.1", "--silent"] interval: 3s retries: 5 start_period: 30s volumes: - db-data:/var/lib/mysql networks: - spring-mysql frontend: build: context: support-portal-frontend dockerfile: Dockerfile restart: always ports: - "8072:80" networks: - angular-spring depends_on: - backend volumes: db-data: {} blog-uploads: {} # Add volume for blog uploads networks: angular-spring: {} spring-mysql: {}