diff --git a/maven-spring/docker/Dockerfile b/maven-spring/docker/Dockerfile new file mode 100644 index 0000000..715e706 --- /dev/null +++ b/maven-spring/docker/Dockerfile @@ -0,0 +1,4 @@ +FROM eclipse-temurin:21.0.6_7-jre-alpine-3.21 +RUN mkdir /opt/app +COPY app.jar /opt/app +CMD ["java", "-jar", "/opt/app/app.jar"] diff --git a/maven-spring/docker/build.sh b/maven-spring/docker/build.sh new file mode 100644 index 0000000..c82c83e --- /dev/null +++ b/maven-spring/docker/build.sh @@ -0,0 +1,23 @@ +#!/usr/bin/env bash + +# Working directory +CWD="../" +echo " Building JavaVerse with context: ${CWD}" + +# Retrieve the Project version with mvn +VERSION=$(xmllint --xpath 'string(//*[local-name()="project"]/*[local-name()="version"])' "${CWD}pom.xml") +echo "Suggested version: ${VERSION}" + +# Create JAR +mvn clean package -DskipTests -q -f "${CWD}pom.xml" +echo "Create JAR artifact" + +# Copy artifact +cp "${CWD}target/"*.jar app.jar + +# Build Docker image +docker build -t javaverse-tasks:"$VERSION" . +echo "Image created" + +rm -f "app.jar" +echo "Clean up JAR artifact" \ No newline at end of file diff --git a/maven-spring/docker/docker-compose.yml b/maven-spring/docker/docker-compose.yml index 7661679..59a9a4b 100644 --- a/maven-spring/docker/docker-compose.yml +++ b/maven-spring/docker/docker-compose.yml @@ -7,9 +7,20 @@ services: # @TODO connect all + # Run javaverse image connect with database + javaverse: + image: javaverse-tasks:0.0.1 + environment: + - DATABASE_URL=postgresql://db:5432/tasks + ports: + - "5190:5190" + depends_on: + db: + condition: service_healthy + + db: image: postgres:17.4-alpine3.21 - container_name: postgres environment: POSTGRES_USER: myuser POSTGRES_PASSWORD: mypassword @@ -18,6 +29,11 @@ services: - "5432:5432" volumes: - postgres_data:/var/lib/postgresql/data + healthcheck: + test: [ "CMD-SHELL", "pg_isready -U myuser -d tasks" ] + interval: 10s + timeout: 5s + retries: 5 volumes: postgres_data: diff --git a/maven-spring/src/main/resources/application-dev.yml b/maven-spring/src/main/resources/application-dev.yml new file mode 100644 index 0000000..56d6bb7 --- /dev/null +++ b/maven-spring/src/main/resources/application-dev.yml @@ -0,0 +1,16 @@ +spring: + application: + name: javaverse + + datasource: + url: jdbc:postgresql://localhost:5432/tasks + username: myuser + password: mypassword + driver-class-name: "org.postgresql.Driver" + + jpa: + hibernate: + ddl-auto: update + +server: + port: 5190 diff --git a/maven-spring/src/main/resources/application.yml b/maven-spring/src/main/resources/application.yml index 56d6bb7..9a73bc5 100644 --- a/maven-spring/src/main/resources/application.yml +++ b/maven-spring/src/main/resources/application.yml @@ -3,7 +3,7 @@ spring: name: javaverse datasource: - url: jdbc:postgresql://localhost:5432/tasks + url: jdbc:postgresql://db:5432/tasks username: myuser password: mypassword driver-class-name: "org.postgresql.Driver"