Files

2.1 KiB
Raw Permalink Blame History

Podman 测试镜像构建

admin-api 目录执行,先把 JAVA_HOME 设置为本机 JDK 8 路径:

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 兼容性仍需单独验证。

只编译、不构建镜像时:

mvn -Dmaven.repo.local="$(pwd)/../chengdu-repository" package -DskipTests

参考:Temurin 官方镜像PostgreSQL JDBC 下载与 Java 兼容性