version: '3.8' services: mysql: image: ${MYSQL_IMAGE} container_name: mysql restart: always environment: MYSQL_ROOT_PASSWORD: "123456" MYSQL_DATABASE: nl_frobt ports: - "3306:3306" volumes: - mysql_data:/var/lib/mysql - ./mysql/:/docker-entrypoint-initdb.d/ networks: - app-network redis: image: ${REDIS_IMAGE} container_name: redis restart: always ports: - "6379:6379" volumes: - redis_data:/data networks: - app-network command: redis-server --requirepass 123456 backend: image: ${BACKEND_IMAGE} container_name: backend restart: always environment: SPRING_DATASOURCE_DYNAMIC_DATASOURCE_MASTER_URL: jdbc:mysql://mysql:3306/nl_frobt?serverTimezone=GMT%2B8&characterEncoding=utf-8&userSSL=false SPRING_DATASOURCE_DYNAMIC_DATASOURCE_MASTER_USERNAME: root SPRING_DATASOURCE_DYNAMIC_DATASOURCE_MASTER_PASSWORD: "123456" SPRING_DATA_REDIS_HOST: redis SPRING_DATA_REDIS_PORT: 6379 SPRING_DATA_REDIS_PASSWORD: "123456" SA-TOKEN_ALONE-REDIS_HOST: redis SA-TOKEN_ALONE-REDIS_PORT: 6379 SA-TOKEN_ALONE-REDIS_PASSWORD: "123456" ports: - "8011:8011" depends_on: - mysql - redis volumes: - /opt/ota-agent/backend-logs:/app/logs - /opt/ota-agent/backend-data/file:/app/data/file - /opt/ota-agent/backend-data/qrcode:/app/data/qrcode - /opt/ota-agent/backend-data/avatar:/app/data/avatar networks: - app-network frontend: image: ${FRONTEND_IMAGE} container_name: frontend restart: always ports: - "8013:8013" depends_on: - backend networks: - app-network networks: app-network: driver: bridge volumes: mysql_data: redis_data: