如何在构建泊坞窗图像时将捆绑包安装到吊索上

时间:2016-09-23 12:49:33

标签: dockerfile sling

我的目标是设置安装到docker镜像的吊索项目,以备使用。我可以手动完成所有这些步骤,但将它们放在一起进行CI构建是很困难的。

如果我使用tomcat,在dockerfile中我只需将war复制到install文件夹,它将在容器首次启动时安装。

我无法找到OOTB版吊索附带的类似'install'文件夹。 Sling documentation说我需要使用HTTP来进行安装。这是一个问题,因为它需要我在构建泊坞窗图像时启动Sling,但如果我这样做,图像将永远不会完成构建。

我正在尝试编写一行bash来执行以下操作

  • 开始吊索
  • 测试是否已开始使用curl
  • 使用curl安装捆绑包(尚未编写)

我的Dockerfile

FROM java:8
COPY /maven/org.apache.sling.launchpad-8.jar /opt/sling/
COPY /maven/custombundle.jar /opt/sling/sling/installerfolder

WORKDIR /opt/sling/
EXPOSE 8080
VOLUME /opt/sling/sling

RUN java $JAVA_OPTS -jar org.apache.sling.launchpad-8.jar $SLING_OPTS & ; until $(curl --output /dev/null --silent --head --fail http://localhost:8080/index.html); do sleep 5 ; done ; #TODO install bundle
#Docker will snapshot the image here

我得到的问题是“返回非零”

 The command '/bin/sh -c java $JAVA_OPTS -jar org.apache.sling.launchpad-8.jar $SLING_OPTS & ; until $(curl --output /dev/null --silent --head --fail http://localhost:8080/index.html); do ; sleep 5 ; done' returned a non-zero code: 2 -> [Help 1]

您可以在此处查看我的完整项目: https://bitbucket.org/rickardstech/hawksite/src

1 个答案:

答案 0 :(得分:1)

使用文件安装程序提供程序存在一个解决方案: https://sling.apache.org/documentation/bundles/file-installer-provider.html

只需在目录

中配置和复制捆绑包