test
This commit is contained in:
@@ -71,8 +71,10 @@ RUN chown -R root:root /root/.m2
|
||||
COPY src ./src
|
||||
|
||||
# 构建应用(使用国内镜像加速)
|
||||
RUN mvn clean package -DskipTests -B -s /root/.m2/settings.xml || \
|
||||
(echo "Build completed with some warnings" && true)
|
||||
RUN mvn clean package -DskipTests -B -s /root/.m2/settings.xml
|
||||
|
||||
# 验证JAR文件是否生成
|
||||
RUN ls -la /build/target/point-strategy-*.jar || (echo "JAR文件生成失败" && exit 1)
|
||||
|
||||
# ===== 运行阶段 =====
|
||||
# 使用更小的Alpine镜像
|
||||
@@ -120,6 +122,9 @@ WORKDIR /app
|
||||
# 从构建阶段复制jar文件
|
||||
COPY --from=builder /build/target/point-strategy-*.jar app.jar
|
||||
|
||||
# 验证JAR文件是否正确复制
|
||||
RUN ls -la app.jar && file app.jar
|
||||
|
||||
# 切换到非root用户
|
||||
USER app
|
||||
|
||||
|
||||
@@ -74,8 +74,13 @@ RUN chown -R root:root /root/.m2
|
||||
COPY src ./src
|
||||
|
||||
# 构建应用(使用国内镜像加速)
|
||||
RUN mvn clean package -DskipTests -B -s /root/.m2/settings.xml || \
|
||||
(echo "Build completed with some warnings" && true)
|
||||
RUN mvn clean package -DskipTests -B -s /root/.m2/settings.xml
|
||||
|
||||
# 验证JAR文件是否生成
|
||||
RUN ls -la /build/target/point-strategy-*.jar || (echo "JAR文件生成失败" && exit 1)
|
||||
|
||||
# 显示JAR文件信息
|
||||
RUN file /build/target/point-strategy-*.jar && ls -lh /build/target/point-strategy-*.jar
|
||||
|
||||
# ===== 运行阶段 =====
|
||||
# 使用OpenJDK 8作为基础镜像
|
||||
@@ -142,6 +147,9 @@ WORKDIR /app
|
||||
# 从构建阶段复制jar文件
|
||||
COPY --from=builder /build/target/point-strategy-*.jar app.jar
|
||||
|
||||
# 验证JAR文件是否正确复制
|
||||
RUN ls -la app.jar && file app.jar
|
||||
|
||||
# 复制配置文件(如果需要覆盖默认配置)
|
||||
# COPY application-prod.yml application-prod.yml
|
||||
|
||||
|
||||
55
debug-container.sh
Executable file
55
debug-container.sh
Executable file
@@ -0,0 +1,55 @@
|
||||
#!/bin/bash
|
||||
|
||||
echo "=== 容器调试脚本 ==="
|
||||
echo
|
||||
|
||||
CONTAINER_NAME="digital-archive-app"
|
||||
|
||||
# 检查容器是否运行
|
||||
if ! docker ps | grep -q "$CONTAINER_NAME"; then
|
||||
echo "❌ 容器 $CONTAINER_NAME 未运行"
|
||||
echo "正在启动容器进行调试..."
|
||||
|
||||
# 临时启动容器进行调试
|
||||
docker run --rm --name debug-container -it --entrypoint /bin/sh digital-archive:stable
|
||||
exit 0
|
||||
fi
|
||||
|
||||
echo "✓ 找到运行中的容器: $CONTAINER_NAME"
|
||||
|
||||
echo
|
||||
echo "🔍 检查容器内的文件结构:"
|
||||
|
||||
# 检查工作目录
|
||||
echo "1. 工作目录内容:"
|
||||
docker exec "$CONTAINER_NAME" ls -la /app || echo "❌ 无法访问 /app 目录"
|
||||
|
||||
# 检查 JAR 文件
|
||||
echo
|
||||
echo "2. JAR 文件检查:"
|
||||
docker exec "$CONTAINER_NAME" ls -la app.jar || echo "❌ app.jar 不存在"
|
||||
|
||||
# 检查 JAR 文件类型
|
||||
echo
|
||||
echo "3. JAR 文件类型:"
|
||||
docker exec "$CONTAINER_NAME" file app.jar || echo "❌ 无法检查文件类型"
|
||||
|
||||
# 检查用户权限
|
||||
echo
|
||||
echo "4. 用户权限:"
|
||||
docker exec "$CONTAINER_NAME" whoami && docker exec "$CONTAINER_NAME" id
|
||||
|
||||
# 检查 Java 环境
|
||||
echo
|
||||
echo "5. Java 环境:"
|
||||
docker exec "$CONTAINER_NAME" java -version || echo "❌ Java 不可用"
|
||||
|
||||
echo
|
||||
echo "🧪 测试直接运行 JAR:"
|
||||
docker exec "$CONTAINER_NAME" sh -c "cd /app && java -jar app.jar --help" || echo "❌ JAR 运行失败"
|
||||
|
||||
echo
|
||||
echo "=== 调试完成 ==="
|
||||
echo
|
||||
echo "💡 如果需要进入容器调试:"
|
||||
echo " docker exec -it $CONTAINER_NAME /bin/sh"
|
||||
Reference in New Issue
Block a user