0

我正在使用 kie-server docker 映像并发送 curl 命令来执行必要的操作。

在我的 settings.xml 中,我定义了一个远程仓库:

<profiles>
    <profile>
      <id>kie</id>
      <properties>
      </properties>
      <repositories>
        <repository>
          <id>jboss-public-repository-group</id>
          <name>JBoss Public Maven Repository Group</name>
          <url>http://mynexus:8081/nexus/content/repositories/releases</url>
          <layout>default</layout>
          <releases>
            <enabled>true</enabled>
            <updatePolicy>never</updatePolicy>
          </releases>
          <snapshots>
            <enabled>true</enabled>
            <updatePolicy>always</updatePolicy>
          </snapshots>
        </repository>
      </repositories>
      ... plugin repo also set ...
</profiles>
<activeProfiles>
  <activeProfile>kie</activeProfile>
</activeProfiles>

当我尝试在 nexus 存储库中创建一个容器并定义一个工件时,我得到以下输出:

09:29:35,236 WARN [org.appformer.maven.integration.embedder.MavenSettings](默认任务 1)环境变量 M2_HOME 未设置

09:29:36,033 INFO [org.appformer.maven.integration.Aether](默认任务 1)本地存储库目录 /opt/jboss/.m2/repository 不存在。创建它。

09:30:06,421 WARN [org.appformer.maven.integration.MavenRepository](默认任务 1)无法解析工件:myGroup:myArtifact:0.0.1

09:30:36,542 错误 [org.kie.server.services.impl.KieServerImpl](默认任务 1)为模块“myGroup:myArtifact:0.0.1”创建容器“myContainer”时出错:java.lang.RuntimeException:不能找到 KieModule: myGroup:myArtifact:0.0.1

看起来它忽略了我的远程存储库设置并尝试使用本地存储库(并首先创建它,因为它不存在)。

如果我设置一个本地 maven repo 并将所需的工件放在那里,容器创建得很好,我可以运行规则,所以规则/jar/容器数据都可以。

一旦它运行,我已经检查了 kie-server docker 容器,并且正确的 settings.xml 文件位于 /opt/jboss/.m2 文件夹中,我认为这是正确的。

提前致谢。

4

1 回答 1

0

我认为答案取决于您如何运行 Kie Server 映像:

  • 如果使用 Red Hat 官方镜像(registry-proxy.engineering.redhat.com/rh-osbs/rhpam-7-rhpam-kieserver-rhel8:7.7.1-1 为例),需要设置 MAVEN_REPO_URL、MAVEN_REPO_USERNAME 和MAVEN_REPO_PASSWORD 配置您的外部 Maven 存储库。

  • 如果使用自己的kie服务器镜像,需要在Dockerfile中自己配置maven,见例子:

FROM openjdk:8-jdk-alpine

# Install Maven
RUN apk add --no-cache curl tar bash
ARG MAVEN_VERSION=3.6.3

RUN mkdir -p /usr/share/maven && \
  curl -fsSL http://apache.osuosl.org/maven/maven-3/$MAVEN_VERSION/binaries/apache-maven-$MAVEN_VERSION-bin.tar.gz | tar -xzC /usr/share/maven --strip-components=1 && \
  ln -s /usr/share/maven/bin/mvn /usr/bin/mvn
ENV M2_HOME /usr/share/maven

# copy maven settings and repository
COPY my-maven-settings.xml /root/.m2/settings.xml

# copy application
COPY my-kieserver.jar /app.jar
# specify default command
CMD ["/usr/bin/java", "-Dkie.maven.settings.custom=/root/.m2/settings.xml", "-jar", "/app.jar"]

您可以在此处找到关于后者的完整示例(方法 1)

于 2020-06-23T07:40:47.230 回答