apache/sling Docker Image
Apache Sling Starter Docker镜像是Apache Sling项目的一部分,用于生成可通过Feature Launcher启动的功能工件,主要支持实验和学习Sling,提供12/latest、11、10、9及snapshot等标签,支持Oak SegmentStore和MongoDB存储后端,支持持久化卷配置。
Apache Sling Starter Docker镜像
镜像概述和主要用途
Apache Sling Starter Docker镜像是Apache Sling项目的一部分,用于生成可通过https://github.com/apache/sling-org-apache-sling-feature-launcher启动的功能工件。该镜像**并非生产就绪的设置**,主要用途是为Sling的实验和学习提供便利,帮助开发者快速搭建Sling运行环境。
核心功能和特性
- 多版本支持:提供多个稳定版本标签及开发快照标签,满足不同学习和实验需求。
- 存储后端支持:默认使用Oak SegmentStore(本地存储),同时支持MongoDB存储后端。
- 持久化配置:支持通过Docker卷挂载实现运行时数据持久化。
- 简单部署:仅需暴露8080端口即可快速启动,无需复杂配置。
- 可扩展性:支持通过添加自定义功能文件扩展Sling Starter功能。
使用场景和适用范围
- Sling学习与实验:适合开发者快速搭建Sling环境,学习Sling框架的基本使用和核心概念。
- 开发环境搭建:作为Sling应用开发的本地测试环境,验证应用功能。
- 功能验证:验证Sling相关功能或扩展在不同存储后端(本地存储、MongoDB)下的表现。
使用方法和配置说明
Docker镜像标签说明
支持以下标签,对应不同版本的Apache Sling Starter:
| 标签 | 说明 | Dockerfile链接 | 发布说明链接 |
|---|---|---|---|
12, latest | Apache Sling Starter 12(最新稳定版) | https://github.com/apache/sling-org-apache-sling-starter/blob/org.apache.sling.starter-12/Dockerfile | https://sling.apache.org/news/sling-12-released.html |
11 | Apache Sling Starter 11 | https://github.com/apache/sling-org-apache-sling-starter-docker/blob/11/Dockerfile | https://sling.apache.org/news/sling-11-released.html |
10 | Apache Sling Starter 10 | https://github.com/apache/sling-org-apache-sling-starter-docker/blob/10/Dockerfile | https://sling.apache.org/news/sling-10-released.html |
9 | Apache Sling Launchpad 9 | https://github.com/apache/sling-org-apache-sling-starter-docker/blob/9/Dockerfile | https://sling.apache.org/news/sling-launchpad-9-released.html |
snapshot | 基于master分支最新版本的开发构建 | https://github.com/apache/sling-org-apache-sling-starter/blob/master/Dockerfile | - |
基本运行命令
Docker镜像仅需暴露8080端口即可启动:
bashdocker run --rm -p 8080:8080 docker.xuanyuan.run/apache/sling:snapshot
启动后可通过 http://localhost:8080 访问Sling。
存储后端配置
Oak SegmentStore(默认)
默认使用Oak SegmentStore(本地存储),无需额外配置,直接运行上述基本命令即可。
MongoDB支持
若需使用MongoDB存储后端,启动命令需指定聚合文件:
bashdocker run --rm -p 8080:8080 docker.xuanyuan.run/apache/sling:snapshot oak_mongo
注意:需确保MongoDB服务器已运行,默认连接URL为 mongodb://localhost:27017(可在功能文件中搜索 mongodb:// 查看具体配置)。
数据持久化配置
为避免容器重启后数据丢失,推荐将 /opt/sling/launcher 目录挂载为Docker卷:
- 创建持久化卷:
bashdocker volume create sling-launcher
- 使用卷启动容器:
bashdocker run --rm -p 8080:8080 -v sling-launcher:/opt/sling/launcher docker.xuanyuan.run/apache/sling:snapshot
构建Docker镜像
可通过Maven命令构建自定义Docker镜像,默认情况下Docker构建被跳过,需指定 -Ddocker.skip=false 参数:
bashmvn clean package -Ddocker.skip=false -Ddocker.label=local
上述命令将构建标签为 apache/sling:local 的镜像,可通过以下命令运行:
bashdocker run --rm -p 8080:8080 docker.xuanyuan.run/apache/sling:local
扩展Sling Starter
若需扩展Sling Starter并排除应用级功能(如Composum、Slingshot等),可基于 nosample_base 聚合启动,该聚合包含:
- 所有基础功能
- Oak基础功能(不含NodeStore设置)
- 无应用程序
例如,启动带Segment持久化的空Sling Starter:
bashtarget/dependency/org.apache.sling.feature.launcher/bin/launcher -f target/slingfeature-tmp/feature-nosample_base.json,target/slingfeature-tmp/feature-oak_persistence_sns.json
可在功能列表中添加自定义功能文件以扩展功能。
helper脚本
scripts 目录包含辅助脚本,简化Sling Starter外部工具的本地开发使用。
镜像拉取方式
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
DockerHub 原生拉取命令
用户好评
来自真实用户的反馈,见证轩辕镜像的优质服务