我正在尝试创建一个Dockerfile,它将自动安装apache karaf并将其配置为工作正常。
我想安装功能列表。我可以用下面的
来做docker exec -it 7447419c89da /opt/karaf/bin/client
但我希望自动化这个过程。我可以运行什么命令来安装这些功能?
答案 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)并部署我的捆绑软件时,我发现,实现这一目标的唯一方法是:>
/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"
一样传递所需的功能作为参数docker exec -i idempiere-micro-karaf /opt/karaf/bin/client "system:shutdown -f -r"
答案 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控制台功能视图的附加软件包。
总结:
required-features.xml
具有功能描述您可以在Karaf源中找到功能文件的示例,例如:
https://github.com/apache/karaf/blob/master/assemblies/features/spring/src/main/feature/feature.xml