version: '3.8' services: mysql: image: mysql:8.0 container_name: supersonic_mysql environment: MYSQL_ROOT_PASSWORD: root_password MYSQL_DATABASE: supersonic_db MYSQL_USER: supersonic_user MYSQL_PASSWORD: supersonic_password ports: - "3306:3306" volumes: - mysql_data:/var/lib/mysql networks: - supersonic_network dns: - 8.8.8.8 - 8.8.4.4 db_init: image: supersonicbi/supersonic:0.9.2-SNAPSHOT container_name: supersonic_db_init depends_on: - mysql networks: - supersonic_network command: > sh -c " sleep 30 && if ! mysql -h supersonic_mysql -usupersonic_user -psupersonic_password -e 'use supersonic_db; show tables;' | grep -q 's2_database'; then mysql -h supersonic_mysql -usupersonic_user -psupersonic_password supersonic_db < /usr/src/app/supersonic-standalone-0.9.2-SNAPSHOT/conf/db/schema-mysql.sql && mysql -h supersonic_mysql -usupersonic_user -psupersonic_password supersonic_db < /usr/src/app/supersonic-standalone-0.9.2-SNAPSHOT/conf/db/data-mysql.sql else echo 'Database already initialized.' fi " dns: - 8.8.8.8 - 8.8.4.4 chroma: image: chromadb/chroma:0.5.3 container_name: supersonic_chroma ports: - "8000:8000" networks: - supersonic_network dns: - 8.8.8.8 - 8.8.4.4 java_backend: image: supersonicbi/supersonic:0.9.2-SNAPSHOT container_name: supersonic_java_backend environment: DB_HOST: supersonic_mysql DB_NAME: supersonic_db DB_USERNAME: supersonic_user DB_PASSWORD: supersonic_password ports: - "9080:9080" depends_on: - mysql - db_init - chroma networks: - supersonic_network dns: - 8.8.8.8 - 8.8.4.4 volumes: mysql_data: networks: supersonic_network: