1+ # geedim, plotnine, pylr2
2+
3+ FROM nasanccs/vhr-cloudmask.pytorch:latest
4+
5+ # Arguments to pass to the image
6+ ARG STEREO_URL="https://github.com/NeoGeographyToolkit/StereoPipeline/releases/download/2.7.0/StereoPipeline-2.7.0-2020-07-29-x86_64-Linux.tar.bz2"
7+ ARG PROJECT_PATH="/usr/local/ilab"
8+
9+ # Environment
10+ # ENV PYTHONPATH="$PYTHONPATH:/usr/local/ilab"
11+ # why is this??????? really bad practice
12+ # ENV PYTHONPATH="/usr/local/lib/python3.8/dist-packages"
13+ ENV REDIS_PORT="6379"
14+ ENV REDIS_FILE="/etc/profile.d/redis_server.sh"
15+
16+ # Ubuntu needs noninteractive to be forced
17+ ENV DEBIAN_FRONTEND=noninteractive
18+ ENV CPLUS_INCLUDE_PATH="/usr/include/gdal"
19+ ENV C_INCLUDE_PATH="/usr/include/gdal"
20+ # ENV PROJ_LIB="/usr/share/proj"
21+ # ENV PROJ_DATA="/usr/share/proj"
22+
23+ # ENV PYTHONPATH="$PYTHONPATH:/usr/local/ilab"
24+
25+ ENV PYTHONPATH="/usr/local/ilab:/usr/local/ilab/vhr-cloudmask:/usr/local/ilab/evhr:/usr/local/ilab/core:/usr/local/ilab/srlite/srlite"
26+ ENV PYTHONPATH="$PYTHONPATH:/usr/local/ilab/srlite:/usr/local/ilab/pyCCDC:/usr/local/ilab/vhr-toolkit:/usr/local/ilab/vhr-toolkit/vhr-toolkit:/opt/DgStereo/pygeotools:/opt/DgStereo/dgtools"
27+ ENV PYTHONPATH="$PYTHONPATH:/opt/DgStereo/pygeotools:/opt/DgStereo/dgtools"
28+
29+ ENV PATH="$PATH:/opt/DgStereo/dgtools:/opt/DgStereo/pygeotools:/opt/DgStereo/dgtools/dgtools:/opt/StereoPipeline/bin:/opt/DgStereo/evhr"
30+
31+ RUN PROJECT_PATH="/usr/local/ilab" && \
32+ REDIS_FILE="/etc/profile.d/redis_server.sh" && \
33+ echo $PROJECT_PATH && \
34+ mkdir -p $PROJECT_PATH && \
35+ apt-get update && \
36+ DEBIAN_FRONTEND=noninteractive apt-get -y dist-upgrade && \
37+ DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
38+ wget vim curl git procps gcc g++ bzip2 libssl-dev \
39+ libsqlite3-dev libx11-dev libgeos++-dev libproj-dev \
40+ build-essential parallel libdatetime-perl gawk util-linux bc \
41+ python3-tk tk-dev libgdbm-dev libc6-dev libbz2-dev libffi-dev \
42+ zlib1g-dev liblzma-dev libgirepository1.0-dev libcairo2-dev \
43+ pkg-config gir1.2-gtk-3.0 libnetcdf-dev libhdf4-dev 2to3 && \
44+ DEBIAN_FRONTEND=noninteractive apt-get -y autoremove && \
45+ rm -rf /var/lib/apt/lists/* && \
46+ rm -rf /var/cache/apt
47+
48+ RUN rm -rf /usr/lib/python*/EXTERNALLY-MANAGED && \
49+ pip install pipx && \
50+ pip install rasterio && \
51+ pip install awscli s3fs && \
52+ pip install celery[redis] && \
53+ pip install certifi && \
54+ pip install cryptography && \
55+ pip install Cython && \
56+ pip install dask && \
57+ pip install decorator && \
58+ pip install dill && \
59+ pip install distributed && \
60+ pip install docutils && \
61+ pip install fiona && \
62+ pip install flower && \
63+ pip install geopandas && \
64+ pip install h5py && \
65+ pip install imageio && \
66+ pip install ipykernel && \
67+ pip install ipython && \
68+ pip install ipython-genutils && \
69+ pip install ipywidgets && \
70+ pip install matplotlib && \
71+ pip install netcdf4 && \
72+ pip install networkx && \
73+ pip install notebook && \
74+ pip install numba && \
75+ pip install numexpr && \
76+ pip install numpy && \
77+ pip install pandas && \
78+ pip install pyhdf && \
79+ pip install pyproj && \
80+ pip install Pysal && \
81+ pip install PyYAML && \
82+ pip install rasterio && \
83+ pip install redis && \
84+ pip install requests && \
85+ pip install rioxarray && \
86+ pip install scikit-image && \
87+ pip install scikit-learn && \
88+ pip install scipy && \
89+ pip install seaborn && \
90+ pip install shapely && \
91+ pip install cartopy && \
92+ pip install xarray && \
93+ pip install urllib3 && \
94+ pip install zarr && \
95+ pip install earthengine-api && \
96+ pip install geemap && \
97+ pip install geedim && \
98+ #pip install vhr-cloudmask && \
99+ pip install 2to3 psycopg2-binary && \
100+ pip install plotnine && \
101+ pip install --upgrade pylr2
102+
103+ RUN PROJECT_PATH="/usr/local/ilab" && \
104+ REDIS_FILE="/etc/profile.d/redis_server.sh" && \
105+ echo $PROJECT_PATH && \
106+ mkdir -p $PROJECT_PATH && \
107+ # Add redis-server binary to /usr/local/bin
108+ export pyVer=`python --version | awk -F' ' '{print $2}' | awk -F'.' '{print $1"."$2}'` && \
109+ ln -sf /usr/local/lib/python${pyVer}/dist-packages/redis_server/bin/redis-server /usr/local/bin/redis-server && \
110+ echo "redis-server --daemonize yes --port \$REDIS_PORT" >> $REDIS_FILE && \
111+ echo "export SINGULARITYENV_REDIS_PORTS=\$REDIS_PORT" >> $REDIS_FILE && \
112+ chmod +x $REDIS_FILE
113+
114+ RUN mkdir -p "/usr/local/ilab" "/opt/DgStereo" && \
115+ # EVHR System Dependencies
116+ wget "https://github.com/NeoGeographyToolkit/StereoPipeline/releases/download/2.7.0/StereoPipeline-2.7.0-2020-07-29-x86_64-Linux.tar.bz2" \
117+ -O /opt/StereoPipeline.tar.bz2 && \
118+ cd /opt && \
119+ tar -jxf StereoPipeline.tar.bz2 && \
120+ rm /opt/StereoPipeline.tar.bz2 && \
121+ mv /opt/StereoPipeline* /opt/StereoPipeline && \
122+
123+ # EVHR DEM Dependencies
124+ git clone https://github.com/nasa-nccs-hpda/evhr-dgtools.git /opt/DgStereo/dgtools && \
125+ git clone https://github.com/nasa-nccs-hpda/evhr-imview.git /opt/DgStereo/imview && \
126+ git clone https://github.com/nasa-nccs-hpda/evhr-pygeotools.git /opt/DgStereo/pygeotools && \
127+ git clone https://github.com/nasa-nccs-hpda/evhr-dem.git /opt/DgStereo/evhr && \
128+ git clone --single-branch --branch main https://github.com/nasa-nccs-hpda/core.git /usr/local/ilab/core && \
129+ git clone --single-branch --branch main https://github.com/nasa-nccs-hpda/evhr.git /usr/local/ilab/evhr && \
130+
131+ # VHR Toolkit Dependencies
132+ git clone --single-branch --branch main https://github.com/nasa-nccs-hpda/srlite.git /usr/local/ilab/srlite && \
133+ git clone --single-branch --branch main https://github.com/nasa-nccs-hpda/pyCCDC.git /usr/local/ilab/pyCCDC && \
134+ git clone --single-branch --branch main https://github.com/nasa-nccs-hpda/vhr-toolkit.git /usr/local/ilab/vhr-toolkit && \
135+ git clone --single-branch --branch main https://github.com/nasa-nccs-hpda/vhr-cloudmask.pytorch.git /usr/local/ilab/vhr-cloudmask && \
136+
137+ # Fix permissions
138+ chmod 755 -R /opt/* && \
139+ 2to3 -w /opt/DgStereo && \
140+ chmod +wx /lib/x86_64-linux-gnu/libc.so.6 && \
141+ chmod a+rwx -R /usr/local/ilab/*
142+
143+ # Create a CLI wrapper so "vhr-toolkit" behaves like a binary
144+ RUN printf '%s\n' \
145+ '#!/usr/bin/env bash' \
146+ 'set -euo pipefail' \
147+ 'exec python /usr/local/ilab/vhr-toolkit/vhr_toolkit/view/vhrToolkit.py "$@"' \
148+ > /usr/local/bin/vhr-toolkit && \
149+ chmod +x /usr/local/bin/vhr-toolkit
150+
151+ HEALTHCHECK NONE
152+ ENTRYPOINT []
153+ CMD ["/bin/bash"]
0 commit comments