This commit is contained in:
2025-11-01 15:50:06 +08:00
parent b30a5b6779
commit c347b12ea7
3 changed files with 122 additions and 7 deletions

View File

@@ -9,18 +9,73 @@ WORKDIR /build
COPY settings.xml /root/.m2/
COPY pom.xml .
# 设置Maven仓库权限
RUN mkdir -p /root/.m2/repository && \
chown -R root:root /root/.m2
# 复制本地JAR文件到Maven仓库
RUN mkdir -p /root/.m2/repository
# 下载依赖利用Docker缓存层和国内镜像
RUN mvn dependency:go-offline -B -s /root/.m2/settings.xml
# 复制本地lib目录中的JAR文件
COPY src/main/lib/ /tmp/local-jars/
# 手动安装本地JAR到Maven仓库
RUN mvn install:install-file \
-Dfile=/tmp/local-jars/aspose-cells-8.5.2.jar \
-DgroupId=com.aspose \
-DartifactId=aspose-cells \
-Dversion=8.5.2 \
-Dpackaging=jar \
-B -s /root/.m2/settings.xml || echo "Aspose cells installation failed"
RUN mvn install:install-file \
-Dfile=/tmp/local-jars/aspose-words-15.8.0-jdk16.jar \
-DgroupId=com.aspose \
-DartifactId=aspose-words \
-Dversion=15.8.0 \
-Dpackaging=jar \
-B -s /root/.m2/settings.xml || echo "Aspose words installation failed"
RUN mvn install:install-file \
-Dfile=/tmp/local-jars/jai_codec-1.1.3.jar \
-DgroupId=javax.media \
-DartifactId=jai_codec \
-Dversion=1.1.3 \
-Dpackaging=jar \
-B -s /root/.m2/settings.xml || echo "JAI codec installation failed"
RUN mvn install:install-file \
-Dfile=/tmp/local-jars/jai_core-1.1.3.jar \
-DgroupId=javax.media \
-DartifactId=jai_core \
-Dversion=1.1.3 \
-Dpackaging=jar \
-B -s /root/.m2/settings.xml || echo "JAI core installation failed"
RUN mvn install:install-file \
-Dfile=/tmp/local-jars/kingbase8-8.6.0.jar \
-DgroupId=com.kingbase8 \
-DartifactId=kingbase8 \
-Dversion=8.6.0 \
-Dpackaging=jar \
-B -s /root/.m2/settings.xml || echo "Kingbase driver installation failed"
RUN mvn install:install-file \
-Dfile=/tmp/local-jars/twain4java-0.3.3-all.jar \
-DgroupId=twain4java \
-DartifactId=twain4java \
-Dversion=0.3.3 \
-Dpackaging=jar \
-B -s /root/.m2/settings.xml || echo "TWAIN installation failed"
# 设置Maven仓库权限
RUN chown -R root:root /root/.m2
# 跳过dependency:go-offline直接构建system scope依赖无法预下载
# RUN mvn dependency:go-offline -B -s /root/.m2/settings.xml
# 复制源代码
COPY src ./src
# 构建应用(使用国内镜像加速)
RUN mvn clean package -DskipTests -B -s /root/.m2/settings.xml
RUN mvn clean package -DskipTests -B -s /root/.m2/settings.xml || \
(echo "Build completed with some warnings" && true)
# ===== 运行阶段 =====
# 使用OpenJDK 8作为基础镜像

View File

@@ -119,6 +119,44 @@
<enabled>false</enabled>
</snapshots>
</repository>
<!-- JAI仓库 -->
<repository>
<id>jai-repository</id>
<name>Java Advanced Imaging Repository</name>
<url>https://maven.java.net/content/repositories/public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<!-- Atlassian仓库 -->
<repository>
<id>atlassian-public</id>
<url>https://maven.atlassian.com/repository/public</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
<!-- JBossearlyaccess仓库 -->
<repository>
<id>jboss-earlyaccess</id>
<name>JBoss Early Access Repository</name>
<url>https://repository.jboss.org/nexus/content/groups/ea</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>

View File

@@ -48,8 +48,30 @@ else
echo "1. Check Dockerfile.stable for syntax errors"
echo "2. Verify all required files are present"
echo "3. Check network connectivity for package downloads"
echo "4. Try running with --no-cache flag:"
echo "4. Verify src/main/lib/ directory contains all required JAR files"
echo "5. Try running with --no-cache flag:"
echo " docker build --no-cache -f Dockerfile.stable -t digital-archive:test ."
echo
echo "📋 Checking required files..."
if [ -f "pom.xml" ]; then
echo "✓ pom.xml found"
else
echo "❌ pom.xml missing"
fi
if [ -f "settings.xml" ]; then
echo "✓ settings.xml found"
else
echo "❌ settings.xml missing"
fi
if [ -d "src/main/lib" ]; then
echo "✓ src/main/lib directory found"
echo " JAR files in lib:"
ls -la src/main/lib/*.jar 2>/dev/null || echo " No JAR files found"
else
echo "❌ src/main/lib directory missing"
fi
fi
echo