jboss 在Docker沿着Wildfly服务器中部署Maven

ih99xse1  于 2022-11-08  发布在  Docker
关注(0)|答案(1)|浏览(202)

我在docker中使用apiman工具。我开发了一个自定义策略。当我在独立模式下运行apiman(没有docker)时,apiman能够从.m2仓库中获取该war(策略)。但是当我在docker中使用apiman时,它不起作用。
1.有没有办法让.m2仓库和wildfly服务器沿着放在docker容器里?多阶段构建会有帮助吗?如何?
这是我的dockerfile

FROM  jboss/wildfly:10.1.0.Final
COPY  apiman_folder ${JBOSS_HOME}

# EXPOSE 8080 9990

USER root

RUN chown -R jboss:0 ${JBOSS_HOME} \
 && chmod -R g+rw ${JBOSS_HOME} 

USER jboss
ENTRYPOINT ["/opt/jboss/wildfly/bin/standalone.sh", "-b", "0.0.0.0", "-bmanagement", "0.0.0.0", "-c", "standalone-apiman.xml"]
hof1towb

hof1towb1#

是的多阶段构建可以解决这个问题,如果你想在构建Docker文件中的映像时构建项目示例:


# First stage for building project and generating apiman folder and policy

From maven AS projectbuild
  #copy source code and recommanded tools 
COPY project_source_code  project_dir
WORKDIR project_dir
RUN mvn install #build your project at this l

# final build stage  copy resources from project build

FROM  jboss/wildfly:10.1.0.Final
COPY  --from=projectbuild apiman_folder ${JBOSS_HOME}
COPY  --from=projectbuild .m2/war_file_path(policy) <deployments_directory>

# EXPOSE 8080 9990

USER root

RUN chown -R jboss:0 ${JBOSS_HOME} \
 && chmod -R g+rw ${JBOSS_HOME} 

USER jboss
ENTRYPOINT ["/opt/jboss/wildfly/bin/standalone.sh", "-b", "0.0.0.0", "-bmanagement", "0.0.0.0", "-c", "standalone-apiman.xml"]

停靠链接
The docker docs for more info
Maven official image available in dockerhub
APIman structure course
我认为最好是在您的机器上构建项目,然后复制策略并使用初始Dockerfile构建映像(只复制策略,而不是整个.m2)。

相关问题