services: mysql: image: mysql:8.4 container_name: lcc-mysql-local env_file: - .env.mysql environment: MYSQL_ROOT_PASSWORD: ${DB_ROOT_PASSWORD} MYSQL_DATABASE: lcc MYSQL_USER: ${SPRING_DATASOURCE_USERNAME} MYSQL_PASSWORD: ${SPRING_DATASOURCE_PASSWORD} volumes: - mysql-data-local:/var/lib/mysql ports: - "3306:3306" networks: - lcc-network-local healthcheck: test: ["CMD", "mysqladmin", "ping", "-h", "localhost"] interval: 10s timeout: 5s retries: 5 restart: unless-stopped # MSSQL Database (optional - nur für MSSQL-Tests) mssql: image: mcr.microsoft.com/mssql/server:2022-latest container_name: lcc-mssql-local environment: ACCEPT_EULA: "Y" MSSQL_SA_PASSWORD: ${DB_ROOT_PASSWORD:-YourStrong@Passw0rd123} MSSQL_PID: "Developer" volumes: - mssql-data-local:/var/opt/mssql - ./docker/mssql-init.sql:/docker-init/mssql-init.sql:ro ports: - "1433:1433" networks: - lcc-network-local healthcheck: test: /opt/mssql-tools18/bin/sqlcmd -S localhost -U sa -P "$${MSSQL_SA_PASSWORD}" -Q "SELECT 1" -C || exit 1 interval: 10s timeout: 5s retries: 10 start_period: 30s restart: unless-stopped profiles: - mssql # Startet nur mit: docker-compose --profile mssql up # MSSQL Init (führt Init-Skript aus) mssql-init: image: mcr.microsoft.com/mssql/server:2022-latest container_name: lcc-mssql-init depends_on: mssql: condition: service_healthy environment: MSSQL_SA_PASSWORD: ${DB_ROOT_PASSWORD:-YourStrong@Passw0rd123} volumes: - ./docker/mssql-init.sql:/init.sql:ro command: > /bin/bash -c " echo 'Waiting for MSSQL to be ready...' && sleep 5 && echo 'Running initialization script...' && /opt/mssql-tools18/bin/sqlcmd -S mssql -U sa -P \"$$MSSQL_SA_PASSWORD\" -i /init.sql -C && echo 'Database initialization complete!' || echo 'Initialization failed or database already exists' " networks: - lcc-network-local profiles: - mssql lcc-app: #image: git.avatic.de/avatic/lcc:latest # Oder für lokales Bauen: build: . container_name: lcc-app-local depends_on: mysql: condition: service_healthy env_file: - .env.mysql environment: # Überschreibe die Datasource URL für Docker-Netzwerk SPRING_DATASOURCE_URL: jdbc:mysql://mysql:3306/lcc ports: - "8080:8080" networks: - lcc-network-local dns: - 8.8.8.8 - 8.8.4.4 restart: unless-stopped volumes: mysql-data-local: mssql-data-local: networks: lcc-network-local: driver: bridge