Files
TSYS-AIOS-GIS/Docker/TSYS-AIOS-GIS-Tools-GIS-Processing

TSYS-AIOS-GIS-Tools-GIS-Processing Container

This container is part of the TSYS-AIOS-GIS project and provides advanced GIS data processing capabilities with Jupyter notebooks and workflow tools.

Overview

The TSYS-AIOS-GIS-Tools-GIS-Processing container extends the base GIS container with advanced processing tools, Jupyter notebooks for interactive analysis, and workflow orchestration tools. This container is designed for in-depth geospatial data analysis and complex ETL workflows.

Tools Included

Extends from Base Container

  • All tools from TSYS-AIOS-GIS-Tools-GIS-Base container
  • GIS libraries, weather data processing libraries, visualization tools

Advanced Processing Tools

  • Jupyter Notebook: Interactive environment for data analysis
  • Node.js/npm: JavaScript runtime and package manager
  • IPyKernel: IPython kernel for Jupyter

Workflow Tools

  • Apache Airflow: Workflow orchestration platform
  • Prefect: Modern workflow management

Usage

Building the Processing Container

# From this directory
cd /home/localuser/AIWorkspace/TSYS-AIOS-GIS/Docker/TSYS-AIOS-GIS-Tools-GIS-Processing

# Use the wrapper script to automatically detect and set user IDs
./docker-compose-wrapper.sh build

# Or run commands in the processing container with automatic user mapping
./docker-compose-wrapper.sh run tsys-gis-processing [command]

# Example: Start Jupyter notebook server
./docker-compose-wrapper.sh run tsys-gis-processing jupyter notebook --ip=0.0.0.0 --port=8888 --allow-root --notebook-dir=/workspace --no-browser

# Example: Start an interactive bash session
./docker-compose-wrapper.sh run tsys-gis-processing bash

Using with docker-compose directly

# Set environment variables and run docker-compose directly
LOCAL_USER_ID=$(id -u) LOCAL_GROUP_ID=$(id -g) docker-compose up --build

# Or export variables first
export LOCAL_USER_ID=$(id -u)
export LOCAL_GROUP_ID=$(id -g) 
docker-compose up

Using the wrapper script

# Build and start the processing container with automatic user mapping
./docker-compose-wrapper.sh up --build

# Start without rebuilding (Jupyter will be available on port 8888)
./docker-compose-wrapper.sh up

# View container status
./docker-compose-wrapper.sh ps

# Stop containers
./docker-compose-wrapper.sh down

Jupyter Notebook Access

When running the container with docker-compose up, Jupyter notebook will be available at:

The notebook server is preconfigured to:

  • Use the workspace directory as the notebook directory
  • Allow access without authentication (in container only)
  • Accept connections from any IP address

User ID Mapping (For File Permissions)

The container automatically detects and uses the host user's UID and GID to ensure proper file permissions. This means:

  • Files created inside the container will have the correct ownership on the host
  • No more root-owned files after container operations
  • Works across different environments (development, production servers)

The container detects the user ID from the mounted workspace volume. If needed, you can override the default values by setting environment variables:

# Set specific user ID and group ID before running docker-compose
export LOCAL_USER_ID=1000
export LOCAL_GROUP_ID=1000
docker-compose up

Or run with inline environment variables:

LOCAL_USER_ID=1000 LOCAL_GROUP_ID=1000 docker-compose up

The container runs as a non-root user named TSYS-Tools with the detected host user's UID/GID.

Data Processing Workflows

This container is optimized for:

  • Interactive geospatial analysis using Jupyter notebooks
  • Complex ETL workflows using Apache Airflow or Prefect
  • Advanced visualization and reporting
  • Model development and testing
  • Integration with PostGIS and other databases