Files
TSYS-AIOS-GIS/Docker/TSYS-AIOS-GIS-Tools-GIS-Base/Dockerfile

78 lines
1.8 KiB
Docker

FROM debian:bookworm-slim
# Avoid prompts from apt
ENV DEBIAN_FRONTEND=noninteractive
# Install base packages for GIS tools
RUN apt-get update && apt-get install -y \
bash \
curl \
wget \
git \
python3 \
python3-pip \
build-essential \
sudo \
&& rm -rf /var/lib/apt/lists/*
# Create symbolic link for python
RUN ln -s /usr/bin/python3 /usr/bin/python
# Install GIS tools
RUN apt-get update && apt-get install -y \
gdal-bin \
libgdal-dev \
proj-bin \
proj-data \
libproj-dev \
postgis \
postgresql-client \
&& rm -rf /var/lib/apt/lists/*
# Install DuckDB with spatial extensions
RUN curl -L https://github.com/duckdb/duckdb/releases/latest/download/duckdb_cli-linux-amd64.zip \
-o /tmp/duckdb.zip && \
cd /tmp && \
unzip duckdb.zip && \
cp duckdb_*_linux_amd64 /usr/local/bin/duckdb && \
chmod +x /usr/local/bin/duckdb && \
rm -rf /tmp/duckdb*
# Install Python GIS libraries
RUN pip3 install --break-system-packages \
geopandas \
shapely \
rasterio \
folium \
plotly \
xarray \
cfgrib \
netcdf4 \
matplotlib \
seaborn \
duckdb \
dask
# Install R with spatial packages (if needed)
RUN apt-get update && apt-get install -y \
r-base \
r-base-dev \
&& rm -rf /var/lib/apt/lists/*
# Install additional tools for weather data processing
RUN apt-get update && apt-get install -y \
ftp \
&& rm -rf /var/lib/apt/lists/*
# Install R spatial packages
RUN R --slave -e "install.packages(c('raster', 'rgdal', 'ncdf4', 'rasterVis', 'leaflet'), repos='https://cran.rstudio.com/', dependencies=TRUE)"
# Add entrypoint script
COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
# Create a working directory
WORKDIR /workspace
# Use the entrypoint script to handle user creation
ENTRYPOINT ["/entrypoint.sh"]