awesome-compose/react-java-mysql/docker-compose.yaml
frgegr a2cf9cc9f3
Update React / Spring / MySQL example (#99)
* Update README.md title from NodeJS to Spring

Signed-off-by: Friedrich Greiner <greinerfriedrich@gmail.com>

* Always restart spring backend service

Signed-off-by: Friedrich Greiner <greinerfriedrich@gmail.com>

* Also pass db-password secret to spring backend

Signed-off-by: Friedrich Greiner <greinerfriedrich@gmail.com>

* Add healthcheck to the mysql service

 - a start_period of 30s + 15s (interval * retries) should be long enough for mysql to initialize

Signed-off-by: Friedrich Greiner <greinerfriedrich@gmail.com>
2021-03-22 09:58:41 +01:00

54 lines
1.0 KiB
YAML

version: "3.7"
services:
backend:
build: backend
restart: always
secrets:
- db-password
environment:
MYSQL_HOST: db
networks:
- react-spring
- spring-mysql
depends_on:
db:
condition: service_healthy
db:
environment:
MYSQL_DATABASE: example
MYSQL_ROOT_PASSWORD_FILE: /run/secrets/db-password
image: mysql:8.0.19
restart: always
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "127.0.0.1", "--silent"]
interval: 3s
retries: 5
start_period: 30s
secrets:
- db-password
volumes:
- db-data:/var/lib/mysql
networks:
- spring-mysql
frontend:
build:
context: frontend
target: development
ports:
- 3000:3000
volumes:
- ./frontend/src:/code/src
- /project/node_modules
networks:
- react-spring
depends_on:
- backend
volumes:
db-data: {}
secrets:
db-password:
file: db/password.txt
networks:
react-spring: {}
spring-mysql: {}