version: '3.8' services: mysql: image: mysql:8.0 container_name: supersonic_mysql environment: MYSQL_ROOT_PASSWORD: root_password MYSQL_DATABASE: ${DB_NAME} MYSQL_USER: ${DB_USERNAME} MYSQL_PASSWORD: ${DB_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: supersonic:0.9.2-SNAPSHOT container_name: supersonic_db_init depends_on: - mysql networks: - supersonic_network command: > sh -c " sleep 30 && if ! mysql -h mysql -u${DB_USERNAME} -p${DB_PASSWORD} -e 'use ${DB_NAME}; show tables;' | grep -q 's2_database'; then mysql -h mysql -u${DB_USERNAME} -p${DB_PASSWORD} ${DB_NAME} < /usr/src/app/supersonic-standalone-0.9.2-SNAPSHOT/conf/schema-mysql.sql && mysql -h mysql -u${DB_USERNAME} -p${DB_PASSWORD} ${DB_NAME} < /usr/src/app/supersonic-standalone-0.9.2-SNAPSHOT/conf/data-mysql.sql else echo 'Database already initialized.' fi " environment: DB_NAME: supersonic_db DB_USERNAME: supersonic_user DB_PASSWORD: supersonic_password dns: - 8.8.8.8 - 8.8.4.4 chroma: image: chromadb/chroma:latest container_name: supersonic_chroma ports: - "8000:8000" networks: - supersonic_network dns: - 8.8.8.8 - 8.8.4.4 java_backend: image: supersonic:0.9.2-SNAPSHOT container_name: supersonic_java_backend environment: 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: