chore: add Drone CI/CD, docker-compose, deploy script and update Dockerfile to Java 21
This commit is contained in:
34
.dockerignore
Normal file
34
.dockerignore
Normal file
@@ -0,0 +1,34 @@
|
||||
# 构建产物
|
||||
target/
|
||||
*/target/
|
||||
|
||||
# IDE
|
||||
.idea/
|
||||
*.iml
|
||||
.vscode/
|
||||
|
||||
# Git
|
||||
.git/
|
||||
.gitignore
|
||||
|
||||
# 文档
|
||||
README.md
|
||||
docs/
|
||||
|
||||
# 数据与日志
|
||||
data/
|
||||
logs/
|
||||
static/
|
||||
|
||||
# 脚本(不需要打包进镜像)
|
||||
*.sh
|
||||
deploy.sh
|
||||
run.sh
|
||||
|
||||
# CI/CD
|
||||
.drone.yml
|
||||
docker-compose.yml
|
||||
|
||||
# 其他
|
||||
*.md
|
||||
*.log
|
||||
50
.drone.yml
Normal file
50
.drone.yml
Normal file
@@ -0,0 +1,50 @@
|
||||
kind: pipeline
|
||||
type: docker
|
||||
name: default
|
||||
|
||||
trigger:
|
||||
branch:
|
||||
- master
|
||||
event:
|
||||
- push
|
||||
|
||||
steps:
|
||||
- name: maven-package
|
||||
image: maven:3-eclipse-temurin-21-alpine
|
||||
volumes:
|
||||
- name: maven-cache
|
||||
path: /root/.m2
|
||||
commands:
|
||||
- mvn clean package -DskipTests -B
|
||||
|
||||
- name: docker-build-and-push
|
||||
image: plugins/docker
|
||||
settings:
|
||||
registry: 192.168.31.253
|
||||
repo: 192.168.31.253/yescent/par
|
||||
tags: latest
|
||||
dockerfile: par-api/Dockerfile
|
||||
username:
|
||||
from_secret: harbor_username
|
||||
password:
|
||||
from_secret: harbor_password
|
||||
|
||||
- name: deploy
|
||||
image: appleboy/drone-ssh
|
||||
settings:
|
||||
host: 192.168.31.252
|
||||
username:
|
||||
from_secret: ssh_username
|
||||
password:
|
||||
from_secret: ssh_password
|
||||
port: 22
|
||||
script:
|
||||
- cd /data/par
|
||||
- ./deploy.sh
|
||||
command_timeout: 2m
|
||||
timeout: 2m
|
||||
|
||||
volumes:
|
||||
- name: maven-cache
|
||||
host:
|
||||
path: /tmp/drone/cache/maven
|
||||
32
deploy.sh
Normal file
32
deploy.sh
Normal file
@@ -0,0 +1,32 @@
|
||||
# PAR Server 部署脚本
|
||||
# 用法: ./deploy.sh [version]
|
||||
|
||||
set -e
|
||||
|
||||
HARBOR="192.168.31.253"
|
||||
PROJECT="yescent"
|
||||
VERSION=${1:-latest}
|
||||
|
||||
echo "====== 开始部署 PAR Server ======"
|
||||
echo "版本: $VERSION"
|
||||
|
||||
# 登录 Harbor
|
||||
docker login $HARBOR
|
||||
|
||||
# 拉取镜像
|
||||
docker pull $HARBOR/$PROJECT/par:$VERSION
|
||||
|
||||
# 停止旧容器
|
||||
docker compose down 2>/dev/null || true
|
||||
|
||||
# 启动新容器
|
||||
docker compose up -d
|
||||
|
||||
# 等待健康检查
|
||||
echo "等待服务启动..."
|
||||
sleep 15
|
||||
|
||||
# 验证部署
|
||||
curl -s http://localhost:${APP_PORT:-9012}/health && echo " 部署成功" || echo " 部署异常"
|
||||
|
||||
echo "====== 部署完成 ======"
|
||||
32
docker-compose.yml
Normal file
32
docker-compose.yml
Normal file
@@ -0,0 +1,32 @@
|
||||
version: '3.8'
|
||||
|
||||
services:
|
||||
app:
|
||||
image: 192.168.31.253/yescent/par:latest
|
||||
container_name: par-server
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "${APP_PORT:-9012}:8080"
|
||||
volumes:
|
||||
- ${DATA_ROOT:-./data}/static/configs:/app/static/configs
|
||||
- ${DATA_ROOT:-./data}/static/admin:/app/static/admin
|
||||
- ${LOG_ROOT:-./logs}:/app/logs
|
||||
environment:
|
||||
TZ: "Asia/Shanghai"
|
||||
JAVA_OPTS: "-Xms256m -Xmx512m"
|
||||
MYSQL_HOST: "${MYSQL_HOST:-host.docker.internal}"
|
||||
MYSQL_PORT: "${MYSQL_PORT:-3306}"
|
||||
MYSQL_DB: "${MYSQL_DB:-par_registry}"
|
||||
MYSQL_USER: "${MYSQL_USER:-root}"
|
||||
MYSQL_PASSWORD: "${MYSQL_PASSWORD:-root}"
|
||||
HMAC_SECRET: "${HMAC_SECRET:-}"
|
||||
PAR_STATIC_PATH: "/app/static"
|
||||
PAR_ADMIN_PATH: "/app/static/admin"
|
||||
extra_hosts:
|
||||
- "host.docker.internal:host-gateway"
|
||||
healthcheck:
|
||||
test: ["CMD", "wget", "-qO-", "http://localhost:8080/health"]
|
||||
interval: 30s
|
||||
timeout: 5s
|
||||
retries: 3
|
||||
start_period: 60s
|
||||
@@ -2,7 +2,7 @@
|
||||
# Phase 1: 最小可用版本
|
||||
|
||||
# 构建阶段
|
||||
FROM eclipse-temurin:17-jdk-alpine AS builder
|
||||
FROM eclipse-temurin:21-jdk-alpine AS builder
|
||||
|
||||
WORKDIR /build
|
||||
|
||||
@@ -28,7 +28,7 @@ RUN apk add --no-cache maven && \
|
||||
cp par-api/target/*.jar target/app.jar
|
||||
|
||||
# 运行阶段
|
||||
FROM eclipse-temurin:17-jre-alpine
|
||||
FROM eclipse-temurin:21-jre-alpine
|
||||
|
||||
LABEL maintainer="PAR Team"
|
||||
LABEL description="PT Adapter Registry Server"
|
||||
|
||||
Reference in New Issue
Block a user