From 94e65b667f93d18f0358bf0d82e5eb856b03c5f8 Mon Sep 17 00:00:00 2001 From: Yevhen Sosna Date: Wed, 2 Apr 2025 18:33:28 +0200 Subject: [PATCH] add test --- .dockerignore | 9 +++++++++ Dockerfile | 27 +++++++++++++++++++++++++++ docker-compose.yml | 39 +++++++++++++++++++++------------------ envfile | 2 ++ 4 files changed, 59 insertions(+), 18 deletions(-) create mode 100644 .dockerignore create mode 100644 Dockerfile create mode 100644 envfile diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 000000000..57cb5a8bc --- /dev/null +++ b/.dockerignore @@ -0,0 +1,9 @@ +# exclude hidden dirs .git etc. +.* +*.iml +gradle +src +# exclude build binaries +build/* +# except files for docker +!build/docker \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 000000000..e21748937 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,27 @@ +# Example of custom Java runtime using jlink in a multi-stage container build +FROM gradle:jdk21 as jdk-build + +COPY --chown=gradle:gradle . /home/gradle/src +WORKDIR /home/gradle/src +RUN ls -al +RUN gradle build -x test --no-daemon + +# Create a custom Java runtime +# RUN $JAVA_HOME/bin/jlink \ +# --add-modules java.base \ +# --strip-debug \ +# --no-man-pages \ +# --no-header-files \ +# --compress=2 \ +# --output /javaruntime + +FROM openjdk:21 +EXPOSE 8080 + +RUN mkdir /app + +# ENV SPRING_PROFILES_ACTIVE=dev + +COPY --from=jdk-build /home/gradle/src/build/libs/*.jar /app/spring-boot-application.jar + +ENTRYPOINT ["java", "-XX:+UnlockExperimentalVMOptions", "-Djava.security.egd=file:/dev/./urandom","-jar","/app/spring-boot-application.jar", "$JAVA_OPTS"] \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index 47579bbaf..5e1b173e7 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,21 +1,24 @@ services: - mysql: - image: mysql:9.1 - ports: - - "3306:3306" + # postgres: + # image: postgres:latest + # ports: + # - "5432:5432" + # environment: + # - POSTGRES_PASSWORD=petclinic + # - POSTGRES_USER=petclinic + # - POSTGRES_DB=petclinic + petclinic: + image: spring.petclinic:${CONTEINER_VESION} + container_name: petclinic + build: ./ environment: - - MYSQL_ROOT_PASSWORD= - - MYSQL_ALLOW_EMPTY_PASSWORD=true - - MYSQL_USER=petclinic - - MYSQL_PASSWORD=petclinic - - MYSQL_DATABASE=petclinic - volumes: - - "./conf.d:/etc/mysql/conf.d:ro" - postgres: - image: postgres:17.0 + - SPRING_PROFILES_ACTIVE = ${SPRING_PROFILES_ACTIVE:-default} + - SPRING_DATASOURCE_URL = ${SPRING_DATASOURCE_URL} + - SPRING_DATASOURCE_USERNAME = ${SPRING_DATASOURCE_USERNAME} + - SPRING_DATASOURCE_PASSWORD = ${SPRING_DATASOURCE_PASSWORD} + - POSTGRES_URL = ${POSTGRES_URL} + - POSTGRES_USER = ${POSTGRES_PASS} + - POSTGRES_URL = ${POSTGRES_URL} ports: - - "5432:5432" - environment: - - POSTGRES_PASSWORD=petclinic - - POSTGRES_USER=petclinic - - POSTGRES_DB=petclinic + - "8080:8080" + diff --git a/envfile b/envfile new file mode 100644 index 000000000..958d6ed3e --- /dev/null +++ b/envfile @@ -0,0 +1,2 @@ +SPRING_PROFILES_ACTIVE=default +CONTEINER_VESION=latest \ No newline at end of file