首页 > 解决方案 > 在执行 docker-compose build 时遇到构建失败问题?

问题描述

FROM java:8
FROM maven:alpine

WORKDIR /app
COPY pom.xml /app
RUN mvn clean
RUN mvn compile
RUN mvn install

COPY . /app
RUN mvn clean install
ENTRYPOINT ["java", "-jar", "/target/Brabo-Asset-Service-Web-0.0.1-SNAPSHOT-spring-boot.jar"]

收到此错误:

java: /app/src/main/java (add: main, clean: false, plugin: null, outputOptions: null)
[INFO]     grpc-java: /app/src/main/java (add: main, clean: false, plugin: null, outputOptions: null)
[INFO] Resolving artifact: io.grpc:protoc-gen-grpc-java:1.15.0, platform: linux-x86_64
[INFO]     Processing (java): NodeLevelService.proto
protoc-jar: executing: [/root/protocjar8340208475023305576/bin/protoc.exe, -I/tmp/protocjar1489995214004248376/include, -I/app/src/main/resources, --java_out=/app/src/main/java, /app/src/main/resources/NodeLevelService.proto]
protoc-jar: caught exception, retrying: java.io.IOException: Cannot run program "/root/protocjar8340208475023305576/bin/protoc.exe": error=2, No such file or directory
protoc-jar: executing: [/root/protocjar8340208475023305576/bin/protoc.exe, -I/tmp/protocjar1489995214004248376/include, -I/app/src/main/resources, --java_out=/app/src/main/java, /app/src/main/resources/NodeLevelService.proto]
protoc-jar: caught exception, retrying: java.io.IOException: Cannot run program "/root/protocjar8340208475023305576/bin/protoc.exe": error=2, No such file or directory
protoc-jar: executing: [/root/protocjar8340208475023305576/bin/protoc.exe, -I/tmp/protocjar1489995214004248376/include, -I/app/src/main/resources, --java_out=/app/src/main/java, /app/src/main/resources/NodeLevelService.proto]

标签: javadockerdocker-composedockerfiledevops

解决方案


关于考虑进行多阶段构建,我同意@stefano,但基本上您的具体问题是由于您正在运行 maven 构建而没有首先包含/复制您的源代码,所以我相信您的 Dockerfile 应该看起来像这样:

FROM maven:alpine

WORKDIR /app
COPY . /app
RUN mvn clean install
ENTRYPOINT ["java", "-jar", "/target/Brabo-Asset-Service-Web-0.0.1-SNAPSHOT-spring-boot.jar"]

推荐阅读