Public Repository

Last pushed: 11 minutes 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 (http://www.opendap.org/download/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 opendap.org 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 http://opendap.apps.nsidc.org/opendap/.

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)

Dockerfile

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.io.tmpdir=/var/cache/tomcat/temp -Djava.util.logging.config.file=/usr/share/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager org.apache.catalina.startup.Bootstrap start

docker-compose.yml

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.

olfs:
  image: olfs:latest
  ports:
   - "8080:8080"
  links:
   - besd
  tty: true
  volumes:
   - /var/log/opendap/nginx:/var/log/nginx/
   - /var/log/opendap/tomcat:/var/log/tomcat/
besd:
  image: besd:latest
  volumes:
   - /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
Owner
nsidc

Comments (0)