Docker 使用常见的 .jar 文件创建基础镜像

时间:2021-03-18 16:21:46

标签: java docker maven

各位,

我正在实施的项目利用 protobufs 进行实体之间的通信,我正在尝试通过创建一个基本映像来对环境进行 Docker 化,该映像将编译 protobufs 并安装到 mvn 中。像……

ARG maven_version=latest
ARG openjdk_version=latest

FROM maven:${maven_version} AS build

COPY ./protocol_buffers/app.proto /home/app/protocol_buffers
COPY ./protocol_buffers/settings.xml /root/.m2/settings.xml
COPY ./java/pom.xml /home/app

RUN mvn -f /home/app/pom.xml clean compile install --projects Core

这就是事情变得奇怪的地方。我有一个目录结构,如:

  • java
    • pom.xml
  • 核心
    • pom.xml
  • 实体 1
    • pom.xml ..
  • 实体n
    • pom.xml

我只想编译 Core 项目以创建一个基本映像,然后在其他每个项目的 FROM 部分中使用该映像。但是,我不能,因为它抱怨找不到它的父级:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>some.group</groupId>
        <artifactId>artifact</artifactId>
        <version>2.0.0</version>
    </parent>
    <artifactId>Core</artifactId>

所以,我试图通过复制 java 目录下的 pom.xml 并只编译 Core 项目来解决,但是,它抱怨缺少模块。

有什么想法吗?

0 个答案:

没有答案