feat(deploy): add deployment script and update Docker docs
- Add deploy.sh for automated Docker build and push to private registry - Lowercase Docker image name to comply with registry requirements - Update README with concrete Docker run examples and configuration
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
# 图书管理系统
|
||||
|
||||
<p align="center">
|
||||
<img src="https://img.shields.io/badge/version-0.1-blue" alt="version">
|
||||
<img src="https://img.shields.io/badge/version-v0.1-blue" alt="version">
|
||||
<img src="https://img.shields.io/badge/Kotlin-2.2.21-purple?logo=kotlin" alt="Kotlin">
|
||||
<img src="https://img.shields.io/badge/Spring_Boot-4.0.6-green?logo=springboot" alt="Spring Boot">
|
||||
<img src="https://img.shields.io/badge/MySQL-8.0-orange?logo=mysql" alt="MySQL">
|
||||
@@ -221,9 +221,29 @@ java -jar build/libs/bookMgr-0.1.jar
|
||||
|
||||
### Docker
|
||||
|
||||
Dockerfile 待补充。镜像后续发布至私有 Gitea 仓库:
|
||||
镜像基于 `bellsoft/liberica-runtime-container:jre-21-slim-musl`,JVM 参数 `-Xmx512m -Dfile.encoding=UTF-8`,暴露 8080 端口。
|
||||
|
||||
[git.msksbr.com/msksbr/bookMgr](https://git.msksbr.com/msksbr/bookMgr)
|
||||
```bash
|
||||
# 拉取镜像
|
||||
docker pull git.msksbr.com/msksbr/bookmgr:v0.1
|
||||
|
||||
# 运行
|
||||
docker run -d \
|
||||
--name bookmgr \
|
||||
-p 8080:8080 \
|
||||
-e DB_DRIVER=com.mysql.cj.jdbc.Driver \
|
||||
-e DB_TYPE=mysql \
|
||||
-e DB_URL=your-db-host \
|
||||
-e DB_PORT=3306 \
|
||||
-e DB_NAME=bookmgr \
|
||||
-e DB_USER=root \
|
||||
-e DB_PASSWORD=your-password \
|
||||
-e JWT_SECRET=your-secret \
|
||||
-e LOG_PATH=/var/log/bookmgr \
|
||||
git.msksbr.com/msksbr/bookmgr:v0.1
|
||||
```
|
||||
|
||||
镜像托管于私有 Gitea 仓库:[git.msksbr.com/msksbr/bookMgr](https://git.msksbr.com/msksbr/bookMgr)
|
||||
|
||||
### Docker Compose
|
||||
|
||||
|
||||
+2
-2
@@ -68,8 +68,8 @@ docker {
|
||||
baseImage.set("bellsoft/liberica-runtime-container:jre-21-slim-musl")
|
||||
ports.set(listOf(8080))
|
||||
images.set(setOf(
|
||||
"$giteaRegistry/$giteaUser/bookMgr:${project.version}",
|
||||
"$giteaRegistry/$giteaUser/bookMgr:latest"
|
||||
"$giteaRegistry/$giteaUser/bookmgr:${project.version}",
|
||||
"$giteaRegistry/$giteaUser/bookmgr:latest"
|
||||
))
|
||||
jvmArgs.set(listOf("-Xmx512m", "-Dfile.encoding=UTF-8"))
|
||||
}
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
REGISTRY="${GITEA_REGISTRY:-git.msksbr.com}"
|
||||
USERNAME="${GITEA_USERNAME:-msksbr}"
|
||||
IMAGE="$REGISTRY/$USERNAME/bookmgr"
|
||||
VERSION=$(grep '^version' build.gradle.kts | head -1 | sed 's/.*"\(.*\)".*/\1/')
|
||||
|
||||
echo ">>> 版本: $VERSION"
|
||||
echo ">>> 镜像: $IMAGE"
|
||||
|
||||
# 1. 构建 jar + 生成 Dockerfile
|
||||
echo ">>> 构建..."
|
||||
./gradlew clean build dockerCreateDockerfile
|
||||
|
||||
# 2. 构建镜像
|
||||
echo ">>> 构建镜像..."
|
||||
docker build \
|
||||
-t "$IMAGE:$VERSION" \
|
||||
-t "$IMAGE:latest" \
|
||||
build/docker/
|
||||
|
||||
# 3. 推送镜像
|
||||
echo ">>> 推送镜像..."
|
||||
docker push "$IMAGE:$VERSION"
|
||||
docker push "$IMAGE:latest"
|
||||
|
||||
echo ""
|
||||
echo "完成!"
|
||||
echo " 镜像: $IMAGE:$VERSION"
|
||||
echo " jar: build/libs/book<gr-$VERSION.jar"
|
||||
echo ""
|
||||
echo "接下来手动操作:"
|
||||
echo " 1. 去 Gitea 创建 Release,版本号填 v$VERSION"
|
||||
echo " 2. 上传 build/libs/bookMgr-$VERSION.jar"
|
||||
echo " 3. 上传 API 文档"
|
||||
Reference in New Issue
Block a user