giswqs commited on
Commit
202a057
·
1 Parent(s): 1f26687

Add Dockerfile

Browse files
Files changed (6) hide show
  1. .pre-commit-config.yaml +32 -0
  2. Dockerfile +19 -0
  3. README.md +18 -0
  4. notebooks/intro.ipynb +45 -0
  5. requirements.txt +3 -0
  6. run.sh +1 -0
.pre-commit-config.yaml ADDED
@@ -0,0 +1,32 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ repos:
2
+ - repo: https://github.com/pre-commit/pre-commit-hooks
3
+ rev: v5.0.0
4
+ hooks:
5
+ - id: check-toml
6
+ - id: check-yaml
7
+ - id: end-of-file-fixer
8
+ types: [python]
9
+ - id: trailing-whitespace
10
+ - id: requirements-txt-fixer
11
+ - id: check-added-large-files
12
+ args: ["--maxkb=500"]
13
+
14
+ - repo: https://github.com/psf/black
15
+ rev: 25.1.0
16
+ hooks:
17
+ - id: black-jupyter
18
+
19
+ - repo: https://github.com/codespell-project/codespell
20
+ rev: v2.4.1
21
+ hooks:
22
+ - id: codespell
23
+ args:
24
+ [
25
+ "--ignore-words-list=aci,acount,acounts,fallow,ges,hart,hist,nd,ned,ois,wqs,watermask,tre,mape",
26
+ "--skip=*.csv,*.geojson,*.json,*.yml*.js,*.html,*cff,*.pdf",
27
+ ]
28
+
29
+ - repo: https://github.com/kynan/nbstripout
30
+ rev: 0.8.1
31
+ hooks:
32
+ - id: nbstripout
Dockerfile ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ FROM quay.io/jupyter/base-notebook:latest
2
+
3
+ RUN mamba install -c conda-forge leafmap maplibre voila -y && \
4
+ pip install -U leafmap && \
5
+ fix-permissions "${CONDA_DIR}" && \
6
+ fix-permissions "/home/${NB_USER}"
7
+
8
+ WORKDIR /home/jovyan
9
+ USER jovyan
10
+
11
+ RUN mkdir ./notebooks
12
+
13
+ COPY run.sh .
14
+
15
+ EXPOSE 8866
16
+
17
+ HEALTHCHECK CMD curl --fail http://localhost:8866/_stcore/health
18
+
19
+ CMD ["/bin/bash", "run.sh"]
README.md CHANGED
@@ -1,3 +1,21 @@
1
  # leafmap-voila
2
 
3
  Build a docker image for using leafmap with Voila
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  # leafmap-voila
2
 
3
  Build a docker image for using leafmap with Voila
4
+
5
+ To build the image:
6
+
7
+ ```bash
8
+ docker buildx build --platform linux/amd64,linux/arm64 -t giswqs/leafmap:voila --push .
9
+ ```
10
+
11
+ To run the image:
12
+
13
+ ```bash
14
+ docker run -it -p 8866:8866 -v $(pwd):/home/jovyan/notebooks giswqs/leafmap:voila
15
+ ```
16
+
17
+ To push the image to the registry:
18
+
19
+ ```bash
20
+ docker push giswqs/leafmap:voila
21
+ ```
notebooks/intro.ipynb ADDED
@@ -0,0 +1,45 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "code",
5
+ "execution_count": 1,
6
+ "metadata": {},
7
+ "outputs": [],
8
+ "source": [
9
+ "import leafmap.maplibregl as leafmap"
10
+ ]
11
+ },
12
+ {
13
+ "cell_type": "code",
14
+ "execution_count": null,
15
+ "metadata": {},
16
+ "outputs": [],
17
+ "source": [
18
+ "m = leafmap.Map(style=\"liberty\")\n",
19
+ "m.add_basemap(\"Satellite\")\n",
20
+ "m"
21
+ ]
22
+ }
23
+ ],
24
+ "metadata": {
25
+ "kernelspec": {
26
+ "display_name": "geo",
27
+ "language": "python",
28
+ "name": "python3"
29
+ },
30
+ "language_info": {
31
+ "codemirror_mode": {
32
+ "name": "ipython",
33
+ "version": 3
34
+ },
35
+ "file_extension": ".py",
36
+ "mimetype": "text/x-python",
37
+ "name": "python",
38
+ "nbconvert_exporter": "python",
39
+ "pygments_lexer": "ipython3",
40
+ "version": "3.12.2"
41
+ }
42
+ },
43
+ "nbformat": 4,
44
+ "nbformat_minor": 2
45
+ }
requirements.txt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ voila
2
+ leafmap
3
+ maplibre
run.sh ADDED
@@ -0,0 +1 @@
 
 
1
+ voila --Voila.ip=0.0.0.0 --no-browser --strip_sources=True --enable_nbextensions=True --MappingKernelManager.cull_interval=60 --MappingKernelManager.cull_idle_timeout=120 --NotebookClient.iopub_timeout=30 notebooks/