diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..cbcbdb7 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,10 @@ +from bellsoft/liberica-openjdk-alpine:24.0.1 as builder +workdir /app +copy . . +run ./mvnw package -DskipTests + +from bellsoft/liberica-openjre-alpine:24.0.1 +workdir app +copy --from=builder /app/target/*.jar app.jar +expose 80 +entrypoint ["java", "-jar", "/app/app.jar"] \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..e34ef0a --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,53 @@ +services: + self: + build: . + container_name: self + depends_on: + - postgres + ports: + - "80:80" + environment: + SPRING_DATASOURCE_URL: jdbc:postgresql://postgres:5432/selfdb + SPRING_DATASOURCE_USERNAME: postgres + SPRING_DATASOURCE_PASSWORD: postgres + SELF_AI_URL: http://ollama:11434/api/chat + networks: + - self_network + + postgres: + image: postgres:17 + container_name: postgres + restart: always + environment: + POSTGRES_DB: selfdb + POSTGRES_USER: postgres + POSTGRES_PASSWORD: postgres + volumes: + - postgres_data:/var/lib/postgresql/data + ports: + - "5432:5432" + networks: + - self_network + + ollama: + image: ollama/ollama:0.11.4 + container_name: ollama + restart: always + volumes: + - ollama:/root/.ollama + ports: + - "11434:11434" + runtime: nvidia + environment: + - NVIDIA_VISIBLE_DEVICES=all + networks: + - self_network + +networks: + self_network: + +volumes: + postgres_data: + name: postgres_data + ollama: + name: ollama \ No newline at end of file diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index ce36144..410fea1 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -1,10 +1,11 @@ spring.application.name=self -server.port=${SELF_SERVER_PORT:80} +server.port=80 +server.address=0.0.0.0 -spring.datasource.url=${SELF_DATASOURCE_URL:jdbc:postgresql://host.docker.internal:5432/selfdb} -spring.datasource.username=${SELF_DATASOURCE_USERNAME:postgres} -spring.datasource.password=${SELF_DATASOURCE_PASSWORD:postgres} +spring.datasource.url=jdbc:postgresql://host.docker.internal:5432/selfdb +spring.datasource.username=postgres +spring.datasource.password=postgres self.ai.url=${SELF_AI_URL:http://localhost:11434/api/chat} self.ai.model=${SELF_AI_MODEL:gemma3:4b}