spring-petclinic/docker-compose.yml
2025-11-18 20:00:06 +05:30

53 lines
1.6 KiB
YAML

services:
app:
build:
context: .
dockerfile: Dockerfile
image: spring-petclinic:latest
ports:
- "8080:8080"
environment:
SPRING_PROFILES_ACTIVE: ${SPRING_PROFILES_ACTIVE:-mysql}
SPRING_DATASOURCE_URL: ${SPRING_DATASOURCE_URL:-jdbc:mysql://mysql:3306/petclinic?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC}
SPRING_DATASOURCE_USERNAME: ${SPRING_DATASOURCE_USERNAME:-petclinic}
SPRING_DATASOURCE_PASSWORD: ${SPRING_DATASOURCE_PASSWORD:-petclinic}
depends_on:
mysql:
condition: service_healthy
restart: unless-stopped
mysql:
image: mysql:9.2
ports:
- "3306:3306"
environment:
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD:-root}
MYSQL_USER: ${SPRING_DATASOURCE_USERNAME:-petclinic}
MYSQL_PASSWORD: ${SPRING_DATASOURCE_PASSWORD:-petclinic}
MYSQL_DATABASE: ${MYSQL_DATABASE:-petclinic}
MYSQL_ALLOW_EMPTY_PASSWORD: "false"
volumes:
- "./conf.d:/etc/mysql/conf.d:ro"
healthcheck:
test: ["CMD-SHELL", "mysqladmin ping -h localhost -p${MYSQL_ROOT_PASSWORD:-root}"]
interval: 10s
timeout: 5s
retries: 10
start_period: 20s
postgres:
image: postgres:18.0
ports:
- "5432:5432"
environment:
POSTGRES_PASSWORD: ${SPRING_DATASOURCE_PASSWORD:-petclinic}
POSTGRES_USER: ${SPRING_DATASOURCE_USERNAME:-petclinic}
POSTGRES_DB: ${POSTGRES_DB:-petclinic}
healthcheck:
test: ["CMD-SHELL", "pg_isready -U ${SPRING_DATASOURCE_USERNAME:-petclinic}"]
interval: 10s
timeout: 5s
retries: 10
start_period: 20s
profiles:
- postgres