https://github.com/mundialis/esa-snap
Docker image of ESA Sentinel Application Platform (SNAP) from http://step.esa.int/main/toolboxes/snap/ . Download at https://hub.docker.com/r/mundialis/esa-snap
https://github.com/mundialis/esa-snap
docker-image hacktoberfest sentinel sentinel-1 sentinel-2 snap snappy
Last synced: 4 months ago
JSON representation
Docker image of ESA Sentinel Application Platform (SNAP) from http://step.esa.int/main/toolboxes/snap/ . Download at https://hub.docker.com/r/mundialis/esa-snap
- Host: GitHub
- URL: https://github.com/mundialis/esa-snap
- Owner: mundialis
- License: gpl-3.0
- Created: 2019-10-24T10:32:53.000Z (over 6 years ago)
- Default Branch: s1tbx
- Last Pushed: 2026-02-05T09:23:10.000Z (4 months ago)
- Last Synced: 2026-02-05T20:57:55.436Z (4 months ago)
- Topics: docker-image, hacktoberfest, sentinel, sentinel-1, sentinel-2, snap, snappy
- Language: Dockerfile
- Homepage:
- Size: 93.8 KB
- Stars: 42
- Watchers: 5
- Forks: 24
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# ESA SNAP 9 docker images
Docker images of ESA Sentinel Application Platform (SNAP) from http://step.esa.int/main/toolboxes/snap/
The related docker images are created and available for download from here:
https://hub.docker.com/r/mundialis/esa-snap
**Tag**|**Description**|**GitHub branch**| **Base image** | **Size** |**docker pull command**
:-----:|:-----:|:-----:|:------------------:|:--------:|:-----:
s1tbx |Only s1tbx toolbox| [s1tbx](https://github.com/mundialis/esa-snap/tree/s1tbx) | Alpine 3.18 based | 1.4 GB | `docker pull mundialis/esa-snap:s1tbx`
latest|Only s1tbx toolbox| [s1tbx](https://github.com/mundialis/esa-snap/tree/s1tbx) | Alpine 3.18 based | 1.4 GB | `docker pull mundialis/esa-snap:latest`
ubuntu|All SNAP toolboxes| [ubuntu](https://github.com/mundialis/esa-snap/tree/ubuntu)| Ubuntu 18.04 based | 2 GB | `docker pull mundialis/esa-snap:ubuntu`
## Installation
Pull the Alpine Linux based image (only SNAP Sentinel-1 toolbox):
```
docker pull mundialis/esa-snap:latest
```
## Tutorial
We recommend the following tutorial:
http://step.esa.int/docs/tutorials/SNAP_CommandLine_Tutorial.pdf
### 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 \
/usr/local/snap/bin/snap
```
### 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 [options] [ ...]
```
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,
* the original installer provided by ESA ships its own oracle java
* Alpine is based on musl libc and busybox. As Oracle JAVA depends on glibc, it
doesn't work smoothly. With https://github.com/sgerrand/alpine-pkg-glibc this
can be workarounded to a certain way but in our case not sufficient (conflicting dependencies).
* From SNAP Version 8, oracle java > 8 and openjdk in general will be supported
officially (https://forum.step.esa.int/t/problems-running-tests-in-intellij/9350/8)
## Where is the Ubuntu based docker image?
Find the Ubuntu based docker image related files in branch `ubuntu` (see [here](https://github.com/mundialis/esa-snap/tree/ubuntu)).
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
ENV JAVA_HOME "/usr/lib/jvm/java-1.8-openjdk"
RUN apk add git openjdk8 maven
RUN git clone https://github.com/senbox-org/snap-engine.git /src/snap/snap-engine
WORKDIR /src/snap/snap-engine
RUN sed -i 's+snap-classification++g' pom.xml
RUN mvn clean install -DskipTests
WORKDIR /src/snap/s1tbx
git clone https://github.com/senbox-org/s1tbx.git /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 ../snap.zip "/src/snap/snap-engine" "/src/snap/s1tbx"
```