OMERO Server Containerο
The OMERO server container serves as the master node for the entire platform, handling core OMERO functionality with minimal but important customizations.
Overviewο
Based on the official openmicroscopy/omero-server image, this container acts as the central coordination point for:
- Core OMERO server functionality 
- Script execution coordination 
- Database management 
- Ice grid management for distributed processing 
Key Customizationsο
Script Installationο
The container automatically installs three sets of scripts during build:
- 1. BIOMERO.scripts
- Source: NL-BioImaging/biomero-scripts 
- Location: - /opt/omero/server/OMERO.server/lib/scripts/biomero/
- Purpose: Slurm-based image analysis workflows 
 
- 2. OMERO.figure Script
- Source: ome/omero-figure 
- Location: - /opt/omero/server/OMERO.server/lib/scripts/omero/figure_scripts/
- Purpose: PDF export functionality for figures 
 
- 3. Labels2ROIs Script
- Location: - /opt/omero/server/OMERO.server/lib/scripts/omero/util_scripts/
- Purpose: Convert BIOMERO label images to OMERO ROIs 
 
Automated Configuration Restorationο
- Configuration Backup/Restore System
- Script: - 00-restore-config.sh
- Purpose: Enables stateless container redeployments by automatically restoring OMERO configuration from backup 
- Location: - /OMERO/backup/omero.config
- Benefit: No manual configuration needed after container (re)creation 
 
- LDAP Integration Ready
- Config: - 01-ldap-config.omero
- Purpose: Pre-configured LDAP settings for enterprise authentication 
- Customizable via environment variables. Placeholder for now. 
 
Dockerfile Key Changesο
# Install required scripts for analysis workflows
RUN cd /opt/omero/server/OMERO.server/lib/scripts/ && \
    git clone --depth 1 --branch ${BIOMERO_VERSION} \
    https://github.com/NL-BioImaging/biomero-scripts.git biomero
# Configuration restoration on startup
ADD server/00-restore-config.sh* /startup/
ADD server/01-ldap-config.omero /opt/omero/server/config/
Development Guidelinesο
Configuration Changesο
Programmatic Configuration: Always make configuration changes through scripts or environment variables to maintain stateless deployments:
# Example: Add new configuration via startup script
echo "config set -- omero.my.setting 'value'" >> /opt/omero/server/config/02-my-config.omero
Environment Variables: Use docker-compose environment variables for dynamic configuration:
environment:
  CONFIG_omero_db_host: "${POSTGRES_HOST}"
  CONFIG_omero_db_name: "${POSTGRES_DB}"
Adding New Scriptsο
To add additional OMERO scripts:
- Via Git Repository (recommended for script collections): 
RUN cd /opt/omero/server/OMERO.server/lib/scripts/ && \
    git clone https://github.com/your-org/your-scripts.git
- Via Direct Download (for individual scripts): 
RUN curl -o /opt/omero/server/OMERO.server/lib/scripts/path/script.py \
    https://raw.githubusercontent.com/your-org/repo/main/script.py
Testing Changesο
- Build and test locally: 
docker-compose -f docker-compose-dev.yml build omeroserver
docker-compose -f docker-compose-dev.yml up -d omeroserver
- Verify script installation: 
docker-compose exec omeroserver omero script list
- Check configuration: 
docker-compose exec omeroserver omero config get