Files
admin-api/docs/build.md
T

27 lines
2.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Podman 测试镜像构建
`admin-api` 目录执行,先把 `JAVA_HOME` 设置为本机 **JDK 8** 路径:
```bash
export JAVA_HOME=/path/to/jdk8
./build.sh -t localhost/admin-api:1.2.1-pg-test
```
- Maven 依赖、插件及其元数据默认缓存到 **`../chengdu-repository`**,以脚本所在的项目目录为基准,不受调用位置影响,也不修改全局 Maven 配置。
- 等效 Maven 参数是 `-Dmaven.repo.local=/absolute/path/to/chengdu-repository`。可以用 `./build.sh -r /other/repository -t localhost/admin-api:1.2.1-pg-test` 覆盖目录。
- 应用构建产物仍是 `target/admin-api-1.2.1-SNAPSHOT.jar`,不会放进依赖缓存目录。修改项目版本后需同步脚本中的 `JAR_FILE`
- 镜像默认名为 `localhost/admin-api:1.2.1-pg-test``-t` 指定完整镜像名和 tag,**不会自动读取 Maven 版本**。
- 使用完整 Maven Wrapper;仓库当前 Wrapper 不完整时回退到本机 `mvn`,请使用支持 JDK 8 的 Maven 3。
- 编译使用 `package -DskipTests`,成功后检查 `BOOT-INF/lib/postgresql-*.jar`;驱动缺失立即停止。
- 编译、驱动检查和镜像构建统一由 `build.sh` 完成,Dockerfile 内嵌在脚本中,通过标准输入传给 Podman,无需单独的 `Dockerfile.podman`。基础镜像为公开的 `docker.io/library/eclipse-temurin:8-jre-jammy``--pull=always` 强制从仓库拉取基础镜像,不依赖预先存在的本地镜像,也不访问旧私有镜像仓库;构建机器需能访问 Docker Hub 和配置的 Maven 仓库。
-`Dockerfile` 保留不变,仍属于旧的私有镜像构建流程。
- 脚本只构建,不推送、不启动容器;中间件 Compose 不会自动启动此 API。加入 PostgreSQL 驱动不等于切换数据源,数据库配置和 SQL 兼容性仍需单独验证。
只编译、不构建镜像时:
```bash
mvn -Dmaven.repo.local="$(pwd)/../chengdu-repository" package -DskipTests
```
参考:[Temurin 官方镜像](https://hub.docker.com/_/eclipse-temurin)、[PostgreSQL JDBC 下载与 Java 兼容性](https://jdbc.postgresql.org/download/)。