diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000..2c2b22c
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,44 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#  http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+FROM docker.io/openjdk:17-slim
+
+LABEL org.opencontainers.image.authors="dev@sling.apache.org"
+
+EXPOSE 8080
+
+RUN mkdir -p /opt/sling/artifacts
+COPY src/main/container /opt/sling
+COPY target/dependency/org.apache.sling.feature.launcher.jar /opt/sling
+COPY target/artifacts/ /opt/sling/artifacts/
+
+RUN groupadd -r sling && \
+    useradd --no-log-init -r -g sling sling && \
+    mkdir /opt/sling/launcher && \
+    chown sling:sling /opt/sling/launcher
+
+# ensure all files are readable by the sling user
+# for some reason some jar files are 0600 and others are 0644
+RUN find /opt/sling/artifacts -type f | xargs chmod 0644
+
+VOLUME /opt/sling/launcher
+
+USER sling:sling
+
+WORKDIR /opt/sling
+ENTRYPOINT [ "/opt/sling/bin/launch.sh" ]
+CMD ["oak_tar"]
diff --git a/README.md b/README.md
index bf7ccb5..24b6570 100644
--- a/README.md
+++ b/README.md
@@ -56,6 +56,30 @@
     
 Your own feature files can be added to the feature list.
 
+## Docker image
+
+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.label` Maven property.
+
+```
+$ mvn clean package -Ddocker.skip=false -Ddocker.label=local
+$ docker run --rm -p 8080 apache/sling:local
+```
+
+By default the iamge launches the `oak_tar` aggregate. The aggregate to launch can be selected by passing an additional argument to the image, e.g.:
+
+```
+$ docker run --rm -p 8080 apache/sling:snapshot oak_mongo
+```
+
+Currently only the `oak_tar` and `oak_mongo` aggregates are supported.
+
+For persisting the runtime data is is recommended to mount `/opt/sling/launcher` as a volume, for instance:
+
+```
+$ docker volume create sling-launcher
+$ docker run --rm -p 8080 -v sling-launcher:/opt/sling/launcher apache/sling:snapshot
+```
+
 ## Helper scripts
 
 The `scripts` directory contains helper scripts that will aid with local development by simplifying the use of tools external to the Sling Starter.
diff --git a/pom.xml b/pom.xml
index b233a2a..7f50ffe 100644
--- a/pom.xml
+++ b/pom.xml
@@ -51,6 +51,7 @@
         <!-- skip index generation for all builds except for CI and release -->
         <bnd.index.generation.skip>true</bnd.index.generation.skip>
         <docker.skip>true</docker.skip>
+        <docker.label>snapshot</docker.label>
         <mongo.container.image>mongo:4.4.6</mongo.container.image>
         <it.startTimeoutSeconds>60</it.startTimeoutSeconds>
         <!-- used for reproducible builds (https://maven.apache.org/guides/mini/guide-reproducible-builds.htm), automatically updated during release -->
@@ -121,7 +122,14 @@
                             <classifier>oak_mongo_far</classifier>
                             <includeClassifier>oak_mongo</includeClassifier>
                         </archive>
-                    </archives>                 
+                    </archives>
+                    <repositories>
+                        <repository>
+                            <includeClassifier>oak_tar</includeClassifier>
+                            <includeClassifier>oak_mongo</includeClassifier>
+                            <includeClassifier>docker</includeClassifier>
+                        </repository>
+                    </repositories>
                 </configuration>
                 <executions>
                     <execution>
@@ -134,6 +142,13 @@
                             <goal>attach-featurearchives</goal>
                         </goals>
                     </execution>
+                    <execution>
+                        <id>create-repository</id>
+                        <phase>package</phase>
+                        <goals>
+                            <goal>repository</goal>
+                        </goals>
+                    </execution>
                </executions>
             </plugin>
             <plugin>
@@ -234,6 +249,13 @@
                                 </wait>
                             </run>
                         </image>
+                        <image>
+                            <name>apache/sling:${docker.label}</name>
+                            <build>
+                                <dockerFile>Dockerfile</dockerFile>
+                                <contextDir>${project.basedir}</contextDir>
+                            </build>
+                        </image>
                     </images>
                     <stopMode>kill</stopMode>
                 </configuration>
@@ -254,6 +276,13 @@
                             <goal>stop</goal>
                         </goals>
                     </execution>
+                    <execution>
+                        <id>build-docker-image</id>
+                        <phase>package</phase>
+                        <goals>
+                            <goal>build</goal>
+                        </goals>
+                    </execution>
                 </executions>
             </plugin>
             <!-- launch the Sling instances to test -->
diff --git a/src/main/container/bin/launch.sh b/src/main/container/bin/launch.sh
new file mode 100755
index 0000000..826d763
--- /dev/null
+++ b/src/main/container/bin/launch.sh
@@ -0,0 +1,39 @@
+#!/bin/bash -e
+
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#  http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+
+feature_name="${1}"
+feature=$(find artifacts -name "*${feature_name}*.slingosgifeature")
+
+if [[ ! -f "${feature}" ]]; then
+    echo "[ERROR] Did not find any feature file matching name ${feature_name}. Aborting"
+    exit 1
+fi
+
+docker_feature=$(find artifacts -name "*docker.slingosgifeature")
+
+echo "[INFO] Selected ${feature} for launching"
+echo "[INFO] Automatically appended ${docker_feature}"
+
+feature="${feature},${docker_feature}"
+
+exec java -jar org.apache.sling.feature.launcher.jar \
+    -c artifacts \
+    -CC "org.apache.sling.commons.log.LogManager=MERGE_LATEST" \
+    -f ${feature}
\ No newline at end of file
diff --git a/src/main/features/docker/docker.json b/src/main/features/docker/docker.json
new file mode 100644
index 0000000..4fc79c0
--- /dev/null
+++ b/src/main/features/docker/docker.json
@@ -0,0 +1,7 @@
+{
+    "configurations":{
+        "org.apache.sling.commons.log.LogManager":{
+            "org.apache.sling.commons.log.file":""
+        }
+    }
+}
\ No newline at end of file
