Initialize Spring Boot docker branch with Drone pipeline

This commit is contained in:
2026-06-19 23:46:24 +08:00
commit c57406b4ac
10 changed files with 154 additions and 0 deletions

32
.drone.yml Normal file
View File

@@ -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

2
.gitignore vendored Normal file
View File

@@ -0,0 +1,2 @@
target
.DS_Store

2
.mvn/wrapper/maven-wrapper.properties vendored Normal file
View File

@@ -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

11
Dockerfile Normal file
View File

@@ -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"]

15
mvnw vendored Executable file
View File

@@ -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 "$@"

7
mvnw.cmd vendored Normal file
View File

@@ -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 %*

45
pom.xml Normal file
View File

@@ -0,0 +1,45 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.3.1</version>
<relativePath/>
</parent>
<groupId>cloud.cdchen</groupId>
<artifactId>backend</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>backend</name>
<description>Minimal Spring Boot service for Docker deployment</description>
<properties>
<java.version>17</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>

View File

@@ -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";
}
}
}

View File

@@ -0,0 +1,6 @@
server:
port: 8080
spring:
application:
name: backend

View File

@@ -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() {
}
}