diff --git a/Dockerfile b/Dockerfile index 73fc263b1..acd6d6703 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,13 +1,19 @@ # syntax=docker/dockerfile:1 -FROM eclipse-temurin:17-jdk-jammy - +FROM eclipse-temurin:17-jdk-jammy as base WORKDIR /app - COPY .mvn/ .mvn COPY mvnw pom.xml ./ RUN ./mvnw dependency:resolve - COPY src ./src -CMD ["./mvnw", "spring-boot:run", "-Dspring-boot.run.profiles=mysql"] \ No newline at end of file +FROM base as development +CMD ["./mvnw", "spring-boot:run", "-Dspring-boot.run.profiles=mysql", "-Dspring-boot.run.jvmArguments='-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:8000'"] + +FROM base as build +RUN ./mvnw package + +FROM eclipse-temurin:17-jre-jammy as production +EXPOSE 8080 +COPY --from=build /app/target/spring-petclinic-*.jar /spring-petclinic.jar +CMD ["java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "/spring-petclinic.jar"] \ No newline at end of file diff --git a/docker-compose.dev.yml b/docker-compose.dev.yml new file mode 100644 index 000000000..1242040a7 --- /dev/null +++ b/docker-compose.dev.yml @@ -0,0 +1,33 @@ +version: '3.8' +services: + petclinic: + build: + context: . + target: development + ports: + - "8000:8000" + - "8080:8080" + environment: + - SERVER_PORT=8080 + - MYSQL_URL=jdbc:mysql://mysqlserver/petclinic + volumes: + - ./:/app + depends_on: + - mysqlserver + + mysqlserver: + image: mysql:8.0 + ports: + - "3306:3306" + environment: + - MYSQL_ROOT_PASSWORD= + - MYSQL_ALLOW_EMPTY_PASSWORD=true + - MYSQL_USER=petclinic + - MYSQL_PASSWORD=petclinic + - MYSQL_DATABASE=petclinic + volumes: + - mysql_data:/var/lib/mysql + - mysql_config:/etc/mysql/conf.d +volumes: + mysql_data: + mysql_config: