From 18857ebc4958927d9f91750f83b46f16c87d753f Mon Sep 17 00:00:00 2001 From: "dmitriy.churmeev" Date: Tue, 3 Mar 2026 21:06:09 +0300 Subject: [PATCH] add docker and woodpecker --- .woodpecker.yml | 39 +++++++++++++++++++++++++++++++++++++++ Dockerfile | 8 +++++++- 2 files changed, 46 insertions(+), 1 deletion(-) create mode 100644 .woodpecker.yml diff --git a/.woodpecker.yml b/.woodpecker.yml new file mode 100644 index 0000000..558f15d --- /dev/null +++ b/.woodpecker.yml @@ -0,0 +1,39 @@ +when: + event: push + branch: main + +steps: + # Шаг 1: Сборка Spring Boot приложения через Gradle + build: + image: gradle:8.5-jdk21 # JDK + commands: + - chmod +x ./gradlew + # - ./gradlew clean build -x test # Сборка без тестов + - ./gradlew clean build test + - ls -la build/libs/ + environment: + GRADLE_USER_HOME: /gradle-cache + volumes: + - /tmp/gradle-cache:/gradle-cache:rw + + # Шаг 2: Сборка Docker образа с именем my-spring-app + docker-build: + image: docker:24.0 + commands: + # Собираем образ с именем my-spring-app и тегом из коммита + - docker build -t my-spring-app:$CI_COMMIT_SHA . + # Тэг latest для удобства + - docker tag my-spring-app:$CI_COMMIT_SHA my-spring-app:latest + volumes: + - /var/run/docker.sock:/var/run/docker.sock + + # Шаг 3: Деплой в Minikube + deploy: + image: bitnami/kubectl:latest + commands: + # Обновляем образ в deployment + - kubectl set image deployment/my-spring-app my-spring-app=my-spring-app:$CI_COMMIT_SHA + # Ждем успешного развертывания + - kubectl rollout status deployment/my-spring-app + when: + status: success \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index 91bf67c..8ff6115 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,11 @@ -FROM --platform=linux/amd64 eclipse-temurin:21-jre-alpine +# Используем Java 21 +FROM openjdk:21-jdk-slim + WORKDIR /app + +# Копируем собранный JAR (для Gradle путь build/libs/) COPY build/libs/*.jar app.jar + EXPOSE 8080 + ENTRYPOINT ["java", "-jar", "app.jar"] \ No newline at end of file