2.1 KiB
2.1 KiB
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