Wer kennt das Problem nicht? Der Java-Appserver ist schon beim hochfahren, während der DB-Server noch Daten importiert und Hibernate fängt an wild Exceptions zu werfen.
Die Lösung ist das Script
wait-for-it, das einfach wartet, bis ein Server auf einem bestimmten Port erreichbar ist.
FROM openjdk:12-alpine
RUN apk add --no-cache bash
ADD utils/wait-for-it.sh /wait-for-it.sh
RUN chmod +x /wait-for-it.sh
COPY /build/your-springboot-app.jar /app/
EXPOSE 8080
ENTRYPOINT [ \
"/wait-for-it.sh", "db:3306", "--", \
"java", \
"-noverify", \
"-XX:TieredStopAtLevel=1", \
"-Djav.security.egd=file:/dev/urandom", \
"-Dspring.jmx.enabled=false", \
"-jar", \
"/app/your-springboot-app.jar" \
]