This module is part of the Apache Sling project.
The starter project produces feature artifacts that can be launched using the Feature Launcher.
It is not meant to be a production-ready setup, more as a way to facilitate experimenting and learning Sling.
See Releasing a new version of the Sling starter for how to create a release of this module.
Note This is a note "mvn clean" deletes the "launcher" work directory in the project base directory. It is advisable to use a work directory outside of the project directory.
Build the Sling Starter using
mvn clean install
in the current directory.
Hint You can defer stopping the instance after running the ITs with argument
-Dfeature-launcher.waitForInput=true
to do some manual checks.
Start Sling backed by
target/dependency/org.apache.sling.feature.launcher/bin/launcher -f target/slingfeature-tmp/feature-oak_tar.json
target/dependency/org.apache.sling.feature.launcher/bin/launcher -f target/slingfeature-tmp/feature-oak_mongo.json
This expects a MongoDB server to be running, search for mongodb://
in the feature files for the expected URL (currently mongodb://localhost:27017
).
Browse Sling in localhost:8080
The following tags are supported
Tag name | Supported platforms | Links |
---|---|---|
12 , latest |
amd64 |
Dockerfile, Release notes |
11 |
amd64 |
Dockerfile, Release notes |
10 |
amd64 |
Dockerfile, Release notes |
9 |
amd64 |
Dockerfile, Release notes |
snapshot |
amd64 , arm64 |
Dockerfile |
docker volume create sling-launcher
docker run --rm -p 8080:8080 -v sling-launcher:/opt/sling/launcher apache/sling:snapshot
docker volume create sling-launcher
docker run --rm -p 27017:27017 mongo:4.4.6
docker run --rm -p 8081:8080 -v sling-launcher:/opt/sling/launcher apache/sling:snapshot oak_mongo
The docker/ directory contains sample files related to container-based development.
The Sling Starter will execute two suites of tests using the maven-surefire-plugin
:
By default, these are both executed when building the project against an Oak SegmentNodeStore backend.
Additionally, when the ci
profile is enabled the smoke tests are also executed in against an Oak DocumentNodeStore backend. For technical resons, the full end-to-end tests are not executed.
The Sling Starter Docker image is only for testing/learning purposes. For your custom applications, please configure your Feature model and build your image with all dependencies and configurations built in.
Our example Docker image uses /opt/sling/bin/launch.sh
script as the entrypoint
. It supports the
following environment variables:
Environment variable | Description | Example |
---|---|---|
JAVA_DEBUG_PORT |
Run Sling Starter in Java debug mode | 5005 |
EXTRA_JAVA_OPTS |
Extra java options e.g Xmx or Xms . |
-Xms256m -Xmx2048m |
Example running Sling Starter in debug mode with custom memory settings
docker run -p 8080:8080 -p 5005:5005 -e JAVA_DEBUG_PORT=5005 -e EXTRA_JAVA_OPTS='-Xms256m -Xmx2048m' apache/sling:snapshot
This module can optionally build a Docker image. This is achieved by running a build with the -Ddocker.skip=false
argument. By default, the image is built as apache/sling:snapshot
. The tag can be overrriden using the docker.image.tag
Maven property.
$ mvn clean package -Ddocker.skip=false -Ddocker.image.tag=local
$ docker run --rm -p 8080:8080 apache/sling:local
If you wish the extend the Sling Starter but would like to keep various application-level features out, you can
start with the nosample_base
aggregate, which contains:
For instance, launching an empty Sling Starter with segment persistence can be achieved by running
target/dependency/org.apache.sling.feature.launcher/bin/launcher -f target/slingfeature-tmp/feature-nosample_base.json,target/slingfeature-tmp/feature-oak_persistence_sns.json
Your own feature files can be added to the feature list.
The scripts
directory contains helper scripts that will aid with local development by simplifying the use of tools external to the Sling Starter.