commit c57406b4ac099f609f5b4d7f9db9003fb3da87d0 Author: cdchen Date: Fri Jun 19 23:46:24 2026 +0800 Initialize Spring Boot docker branch with Drone pipeline diff --git a/.drone.yml b/.drone.yml new file mode 100644 index 0000000..21af40f --- /dev/null +++ b/.drone.yml @@ -0,0 +1,32 @@ +kind: pipeline +type: docker +name: backend-docker + +trigger: + branch: + - docker + event: + - push + +steps: + - name: build-image + image: docker:27-cli + volumes: + - name: dockersock + path: /var/run/docker.sock + commands: + - docker build -t cdchen-backend:docker . + + - name: deploy + image: docker:27-cli + volumes: + - name: dockersock + path: /var/run/docker.sock + commands: + - docker rm -f cdchen-backend || true + - docker run -d --name cdchen-backend --restart unless-stopped -p 8089:8080 cdchen-backend:docker + +volumes: + - name: dockersock + host: + path: /var/run/docker.sock diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..54088d5 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +target +.DS_Store diff --git a/.mvn/wrapper/maven-wrapper.properties b/.mvn/wrapper/maven-wrapper.properties new file mode 100644 index 0000000..dac3682 --- /dev/null +++ b/.mvn/wrapper/maven-wrapper.properties @@ -0,0 +1,2 @@ +distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.8/apache-maven-3.9.8-bin.zip +wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.3.2/maven-wrapper-3.3.2.jar diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..d39276a --- /dev/null +++ b/Dockerfile @@ -0,0 +1,11 @@ +FROM maven:3.9.8-eclipse-temurin-17 AS build +WORKDIR /workspace +COPY pom.xml . +COPY src ./src +RUN mvn -B clean package -DskipTests + +FROM eclipse-temurin:17-jre-alpine +WORKDIR /app +COPY --from=build /workspace/target/backend-0.0.1-SNAPSHOT.jar app.jar +EXPOSE 8080 +ENTRYPOINT ["java", "-jar", "/app/app.jar"] diff --git a/mvnw b/mvnw new file mode 100755 index 0000000..02af074 --- /dev/null +++ b/mvnw @@ -0,0 +1,15 @@ +#!/bin/sh +set -e + +BASE_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd) +WRAPPER_DIR="$BASE_DIR/.mvn/wrapper" +WRAPPER_JAR="$WRAPPER_DIR/maven-wrapper.jar" +PROPERTIES_FILE="$WRAPPER_DIR/maven-wrapper.properties" + +if [ ! -f "$WRAPPER_JAR" ]; then + URL=$(sed -n 's/^wrapperUrl=//p' "$PROPERTIES_FILE") + mkdir -p "$WRAPPER_DIR" + curl -fsSL "$URL" -o "$WRAPPER_JAR" +fi + +exec java -classpath "$WRAPPER_JAR" org.apache.maven.wrapper.MavenWrapperMain "$@" diff --git a/mvnw.cmd b/mvnw.cmd new file mode 100644 index 0000000..3575eb2 --- /dev/null +++ b/mvnw.cmd @@ -0,0 +1,7 @@ +@ECHO OFF +SETLOCAL +set WRAPPER_JAR=%~dp0\.mvn\wrapper\maven-wrapper.jar +if not exist "%WRAPPER_JAR%" ( + powershell -Command "(New-Object Net.WebClient).DownloadFile('https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.3.2/maven-wrapper-3.3.2.jar','%WRAPPER_JAR%')" +) +java -classpath "%WRAPPER_JAR%" org.apache.maven.wrapper.MavenWrapperMain %* diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..5c709c4 --- /dev/null +++ b/pom.xml @@ -0,0 +1,45 @@ + + + 4.0.0 + + + org.springframework.boot + spring-boot-starter-parent + 3.3.1 + + + + cloud.cdchen + backend + 0.0.1-SNAPSHOT + backend + Minimal Spring Boot service for Docker deployment + + + 17 + + + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-test + test + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + diff --git a/src/main/java/cloud/cdchen/backend/BackendApplication.java b/src/main/java/cloud/cdchen/backend/BackendApplication.java new file mode 100644 index 0000000..61ea772 --- /dev/null +++ b/src/main/java/cloud/cdchen/backend/BackendApplication.java @@ -0,0 +1,22 @@ +package cloud.cdchen.backend; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RestController; + +@SpringBootApplication +public class BackendApplication { + + public static void main(String[] args) { + SpringApplication.run(BackendApplication.class, args); + } + + @RestController + static class HealthController { + @GetMapping("/") + public String index() { + return "backend docker branch deployed"; + } + } +} diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml new file mode 100644 index 0000000..bd4db9b --- /dev/null +++ b/src/main/resources/application.yml @@ -0,0 +1,6 @@ +server: + port: 8080 + +spring: + application: + name: backend diff --git a/src/test/java/cloud/cdchen/backend/BackendApplicationTests.java b/src/test/java/cloud/cdchen/backend/BackendApplicationTests.java new file mode 100644 index 0000000..4f529b7 --- /dev/null +++ b/src/test/java/cloud/cdchen/backend/BackendApplicationTests.java @@ -0,0 +1,12 @@ +package cloud.cdchen.backend; + +import org.junit.jupiter.api.Test; +import org.springframework.boot.test.context.SpringBootTest; + +@SpringBootTest +class BackendApplicationTests { + + @Test + void contextLoads() { + } +}