Skip to content


Folders and files

Last commit message
Last commit date

Latest commit



71 Commits

Repository files navigation

ESA SNAP 9 docker images

Docker images of ESA Sentinel Application Platform (SNAP) from

The related docker images are created and available for download from here:

Tag Description GitHub branch Base image Size docker pull command
s1tbx Only s1tbx toolbox s1tbx Alpine 3.18 based 1.4 GB docker pull mundialis/esa-snap:s1tbx
latest Only s1tbx toolbox s1tbx Alpine 3.18 based 1.4 GB docker pull mundialis/esa-snap:latest
ubuntu All SNAP toolboxes ubuntu Ubuntu 18.04 based 2 GB docker pull mundialis/esa-snap:ubuntu


Pull the Alpine Linux based image (only SNAP Sentinel-1 toolbox):

docker pull mundialis/esa-snap:latest


We recommend the following tutorial:

Usage examples

SNAP Graphical User Interface - GUI

Using the GUI, among other functionality the GraphBuilder is available.

Start of GUI, with volume mapping of current directory (pwd; may be set to a different directory) to /data/ within docker:

docker run -it --rm --volume="$(pwd)/:/data" \
    --volume="/tmp/.X11-unix:/tmp/.X11-unix:rw" \
    --env DISPLAY=$DISPLAY --device="/dev/dri/card0:/dev/dri/card0" \
    mundialis/esa-snap:latest \

SNAP Graph Processing Tool - command line

Using the SNAP Graph Processing Tool (GPT):

# show help of gpt tool
docker run -it --rm mundialis/esa-snap:latest /usr/local/snap/bin/gpt -h

One can pass the required processing settings in an XML-encoded graph file which is passing this graph as parameter to the gpt tool:

docker run -it --rm mundialis/esa-snap:latest /usr/local/snap/bin/gpt <GraphFile.xml> [options] [<source-file-1> <source-file-2> ...]

For further gpt usage please refer to the official documentation.

Background info

This docker image is based on Alpine Linux and only contains the s1tbx toolbox. Furthermore,

Where is the Ubuntu based docker image?

Find the Ubuntu based docker image related files in branch ubuntu (see here). See there for related instructions.

Alpine dev stuff

Alternatively, a build approach was tried out. Kept here if needed further. As the stable SNAP version 7.0.2 needs maven 3.6.0 (while alpine offers 3.6.3), so SNAP 8 was built for testing.

FROM alpine:edge

<!-- ARG SNAP_ENGINE_TAG=8.0.0 -->
ENV JAVA_HOME "/usr/lib/jvm/java-1.8-openjdk"

RUN apk add git openjdk8 maven
RUN git clone /src/snap/snap-engine
WORKDIR /src/snap/snap-engine
<!-- RUN git checkout $SNAP_ENGINE_TAG -->
RUN sed -i 's+<module>snap-classification</module>+<!--<module>snap-classification</module>-->+g' pom.xml
RUN mvn clean install -DskipTests

WORKDIR /src/snap/s1tbx
git clone /src/snap/s1tbx
cd s1tbx
mvn clean install

WORKDIR /src/snap/snap-enginge
java -cp snap-runtime/target/snap-runtime.jar org.esa.snap.runtime.BundleCreator ../ "/src/snap/snap-engine" "/src/snap/s1tbx"