lcc_tool/docker-compose.yml

102 lines
No EOL
2.7 KiB
YAML

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