IntelliJ Docker:来自守护程序的错误响应:复制失败:未指定源文件

问题描述 投票:0回答:1

大家好,新年快乐! :-)

我对 Docker 完全陌生,我尝试从我的 Java 项目构建一个 docker 镜像。为了构建我的项目,我使用了 IntelliJ 以及 Maven 和 Quarkus。

这些是我使用的 Maven、Quarkus 和 JDK 的版本:

IntelliJ IDEA 2023.2.2
Build #IU-232.9921.47, built on September 12, 2023,
openJDK 17.0.8
<compiler-plugin.version>3.11.0</compiler-plugin.version>
<maven.compiler.release>17</maven.compiler.release>
<quarkus.platform.version>3.5.0</quarkus.platform.version>

IntelliJ 自己创建一个 Dockerfile:

Dockerfile.native:

FROM quay.io/quarkus/quarkus-micro-image:2.0
WORKDIR /work/
RUN chown 1001 /work \
    && chmod "g+rwX" /work \
    && chown 1001:root /work
COPY --chown=1001:root target/*-runner /work/application

EXPOSE 8080
USER 1001

ENTRYPOINT ["./application", "-Dquarkus.http.host=0.0.0.0"]

问题:

如果我尝试使用 IntelliJ 构建 docker-image,我收到此错误:

Deploying '<unknown> Dockerfile: src/main/docker/Dockerfile'…
Building image…
Preparing build context archive…
[==================================================>]6/6 files
Done

Sending build context to Docker daemon…
[==================================================>] 3,105kB
Done

Step 1/7 : FROM registry.access.redhat.com/ubi8/ubi-minimal:8.8
 ---> 7a93e51a9917
Step 2/7 : WORKDIR /work/
 ---> Using cache
 ---> 2b40db798417
Step 3/7 : RUN chown 1001 /work     && chmod "g+rwX" /work     && chown 1001:root /work
 ---> Using cache
 ---> 32543c06ff9a
Step 4/7 : COPY --chown=1001:root target/*-runner /work/application
Error response from daemon: COPY failed: no source files were specified
Failed to deploy '<unknown> Dockerfile: src/main/docker/Dockerfile': Can't retrieve image ID from build stream

我不明白这个问题。如果有人能给我解释一下,我会很高兴。

感谢您的阅读

我尝试通过 Google 和 StackOverflow 搜索解决方案。我尝试了 IntelliJ 创建的其他 Dockerfile:

Dockerfile.native.micro:

FROM quay.io/quarkus/quarkus-micro-image:2.0
WORKDIR /work/
RUN chown 1001 /work \
    && chmod "g+rwX" /work \
    && chown 1001:root /work
COPY --chown=1001:root target/*-runner /work/application

EXPOSE 8080
USER 1001

ENTRYPOINT ["./application", "-Dquarkus.http.host=0.0.0.0"]

Dockerfile.jvm:

FROM registry.access.redhat.com/ubi8/openjdk-17:1.17

ENV LANGUAGE='en_US:en'


# We make four distinct layers so if there are application changes the library layers can be re-used
COPY --chown=185 target/quarkus-app/lib/ /deployments/lib/
COPY --chown=185 target/quarkus-app/*.jar /deployments/
COPY --chown=185 target/quarkus-app/app/ /deployments/app/
COPY --chown=185 target/quarkus-app/quarkus/ /deployments/quarkus/

EXPOSE 8080
USER 185
ENV JAVA_OPTS_APPEND="-Dquarkus.http.host=0.0.0.0 -Djava.util.logging.manager=org.jboss.logmanager.LogManager"
ENV JAVA_APP_JAR="/deployments/quarkus-run.jar"

ENTRYPOINT [ "/opt/jboss/container/java/run/run-java.sh" ]
docker intellij-idea dockerfile jetbrains-ide docker-image
1个回答
0
投票

我解决了我的问题。问题是,某些文件不在 src 路径中。现在效果很好。

© www.soinside.com 2019 - 2024. All rights reserved.