Docker 找不到内部依赖

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

我对 Docker 还算陌生,但我需要构建我的微服务应用程序,并且我有一个结构,其中一些应用程序使用我的包中的另一个应用程序,即 IntalliJ 项目视图中的另一个“模块”,它在 Maven 的 POM 上定义如下:

        <!-- Annerd Dependencies -->
        <dependency>
            <groupId>com.annerd</groupId>
            <artifactId>ams-commons-utilities</artifactId>
            <version>1.2.0</version>
            <scope>compile</scope>
        </dependency>

但是当我构建我的 Dockerfile 时,它给出了这个错误

50.53 [ERROR] Failed to execute goal on project ams-findme: Could not resolve dependencies for project com.annerd.findme:ams-findme:jar:BETA-2.1: The following artifacts could not be resolved: com.annerd:ams-commons-utilities:jar:1.2.0 (absent): Could not find artifact com.annerd:ams-commons-utilities:jar:1.2.0 in central (https://repo.maven.apache.org/maven2) -> [Help 1]

这让我相信我在这里遗漏了一些步骤。

这是我的 Dockerfile

FROM maven:3.9.6-amazoncorretto-17-al2023 AS build-stage

RUN mkdir -p /usr/src/app

WORKDIR /usr/src/app

ADD . /usr/src/app

RUN mvn install -U

###############################################################

FROM openjdk:17-alpine AS production-stage

COPY --from=build-stage /usr/src/app/target/*.jar annerd-find-me-api.jar

EXPOSE 8785

ENTRYPOINT ["java", "-jar", "annerd-find-me-api.jar", "-Xmx256m -Xms128m -Dspring.profiles.active=prod"]

我的问题是,该项目使用提供的 POM 在 IntelliJ 的 IDE 上正确构建,我没有任何像 Nexus 或类似的存储库服务器来提供这种依赖关系,这正是我怀疑我需要的,我计划实现一个但还没有,有没有办法在没有存储库的情况下解决这个问题?我是不是错过了什么?

java docker maven containers microservices
1个回答
0
投票

您提到它是在本地构建的,因此如果该工件存在于正确的路径中,它应该可以工作。

首先,docker build 的时候有没有什么错误信息?如果没有,请检查路径中是否存在该工件

/usr/src/app/target

如果是这样,请将其复制到特定工件或所有工件(如果需要),因为您使用了通配符。

  1. COPY --from=build-stage /usr/src/app/target/*.jar .
  2. COPY --from=build-stage /usr/src/app/target/annerd-find-me-api.jar annerd-find-me-api.jar
© www.soinside.com 2019 - 2024. All rights reserved.