如何使用Dockerfile安装karaf功能

时间:2018-03-09 20:19:46

标签: docker dockerfile apache-karaf

我正在尝试创建一个Dockerfile,它将自动安装apache karaf并将其配置为工作正常。

我想安装功能列表。我可以用下面的

来做
docker exec -it 7447419c89da  /opt/karaf/bin/client

但我希望自动化这个过程。我可以运行什么命令来安装这些功能?

2 个答案:

答案 0 :(得分:1)

TL; DR -将功能作为参数作为client

传递给docker exec -it 7447419c89da /opt/karaf/bin/client -r 7 "feature:install http; feature:install webconsole"

我认为Witek's answer是正确的,这就是应该起作用的方式。

但是,当我构建my own Dockerfile for iDempiere Micro on Karaf以自动安装Apache Karaf,安装其他功能(例如WebConsole)并部署我的捆绑软件时,我发现,实现这一目标的唯一方法是:

  1. 在Dockerfile中安装Apache Karaf,还包括其他帮助程序shell脚本,请勿尝试安装功能
  2. 使用Karaf启动docker,让其启动并等待一会儿
  3. 按照您的问题运行/opt/karaf/bin/client,然后像docker exec -i idempiere-micro-karaf /opt/karaf/bin/client -r 7 "feature:install http; feature:install http-whiteboard; feature:install war; feature:install webconsole"一样传递所需的功能作为参数
  4. 再次等待,使用docker exec -i idempiere-micro-karaf /opt/karaf/bin/client "system:shutdown -f -r"
  5. 重新启动Apache Karaf

答案 1 :(得分:0)

您可以使用XML文件(Feature Repository]并将其复制到 ... / apache-karaf-4.1.5 / deploy 文件夹中。然后它将由Karaf接收在启动期间,如果文件中描述的属性已指定,则会自动安装文件中描述的功能:install="auto"

示例文件:

<features
        name="AET Features"
        xmlns="http://karaf.apache.org/xmlns/features/v1.3.0"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://karaf.apache.org/xmlns/features/v1.3.0 http://karaf.apache.org/xmlns/features/v1.3.0">

    <repository>mvn:org.apache.cxf.karaf/apache-cxf/3.2.0/xml/features</repository>

    <feature name="fooo" version="1.0.0" description="Features that should be installed" install="auto">
        <feature>cxf-core</feature>
        <feature>webconsole</feature>
        <bundle>mvn:org.apache.karaf.webconsole/org.apache.karaf.webconsole.features/4.1.2</bundle>
    </feature>

</features>

这将安装一个名为 fooo 的新功能,其中包含 cxf-core 功能 - 仅用于此示例(此实例需要其自己的存储库位置),<可以在Karaf上使用的em> webconsole 功能以及提供Web控制台功能视图的附加软件包。

总结:

  1. 下载并解压缩Karaf
  2. 创建一个具有某个名称的文件,即:required-features.xml具有功能描述
  3. 启动Karaf实例
  4. 您可以在Karaf源中找到功能文件的示例,例如:

    https://github.com/apache/karaf/blob/master/assemblies/features/spring/src/main/feature/feature.xml