Public Repository

Last pushed: 8 months ago
Short Description
Hyrax olfs base machine
Full Description

This image is based on the official centos image. It contains all of the software dependencies to run OLFS from Hyrax ( on port 8080, but it does not include all required configuration.

Opendap version matches the image version tag from 1.12.2 forward, 1.12.2 is deployed on centos6, later releases will utilize the OS release that releases the appropriate pacakges for).

For a complete Hyrax instance, the BESD service must also be configured and running; see nsidc/besd.system. These two images are the basis for the OPeNDAP deployment running at

Required Configuration (as of Hyrax 1.12)

  • /var/lib/tomcat/webapps/opendap/docs/css/contents.css (example)
  • /var/lib/tomcat/webapps/opendap/initialContent/olfs.xml (example, documentation)
  • /var/lib/tomcat/webapps/opendap/xsl/contents.xsl (example)
  • /var/lib/tomcat/webapps/opendap/xsl/webStartDataset.xsl (example)


At NSIDC, our OPeNDAP configuration files are stored in a private git repository. We use a Dockerfile to create the "configuration layer" image, which starts from the publicly available image here, copies the config files into place, and starts the nginx and OLFS (tomcat) processes:

COPY ./xsl/webStartDataset.xsl /var/lib/tomcat/webapps/opendap/xsl/webStartDataset.xsl
COPY ./xsl/contents.xsl /var/lib/tomcat/webapps/opendap/xsl/contents.xsl
COPY ./docs/css/contents.css /var/lib/tomcat/webapps/opendap/docs/css/contents.css
COPY ./olfs.xml /var/lib/tomcat/webapps/opendap/initialContent/olfs.xml
ENTRYPOINT sudo -u tomcat /usr/lib/jvm/jre/bin/java -classpath :/usr/share/tomcat/bin/bootstrap.jar:/usr/share/tomcat/bin/tomcat-juli.jar:/usr/bin/build-classpath: -Dcatalina.base=/usr/share/tomcat -Dcatalina.home=/usr/share/tomcat -Djava.endorsed.dirs= -Djava.util.logging.config.file=/usr/share/tomcat/conf/ -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager org.apache.catalina.startup.Bootstrap start


Since Hyrax consists of mulitple services, we use Docker Compose to manage the containers, allowing us to treat it as a single Ubuntu service.

For the OLFS configuration, we forward port 80 on the container so that the tomcat server is accessible to the outside world, link to the BESD container, and mount volums to persist logs.

  image: olfs:latest
   - "8080:8080"
   - besd
  tty: true
   - /var/log/opendap/nginx:/var/log/nginx/
   - /var/log/opendap/tomcat:/var/log/tomcat/
  image: besd:latest
   - /ftp:/ftp:ro
   - /share:/share:ro
   - /share/apps/opendap/DATASETS:/usr/local/share/hyrax/DATASETS:ro
   - /var/log/opendap/bes:/var/log/bes/

Docker Pull Command