HyraxDockerReleaseGuide

From OPeNDAP Documentation

1 Overview

This document describes how to make a release of the official Hyrax Docker image

Each of our official Docker image builds are based on an associated official release of the Hyrax server. The images are built using the official release tar/war files whose authenticity is verified during the build.

In our Docker project, each release of Hyrax has its own directory. Making a new release begins with copying the most recent release files to a new release directory and editing their contents, and of course, testing that it works.

Here's more information on working with Docker: Docker container build

2 Release Recipe

2.1 Create And Build Release Images

From the command line make the working directory the top of the hyrax-docker project.

  1. Edit the mkDist file and update the following values to reflect the various release components and the release date:
    HYRAX_MAJOR_VERSION="1.15"
    HYRAX_FULL_VERSION="1.15.3"
    OLFS_VERSION="1.18.3"
    LIBDAP_VERSION="3.20.3-1"
    BES_VERSION="3.20.3-1"
    RELEASE_DATE="2019-02-25"
  2. Save the file.
  3. Run the file:
    ./mkDist
  4. Done.

At this point, unless errors were encountered, all the images should be built.

2.2 Test the images.

They should already be tagged with the various names, including the images that will be needed for docker hub:

opendap/hyrax:xx.yy.zz
opendap/hyrax:latest
opendap/hyrax_ncwms:xx.yy.zz
opendap/hyrax_ncwms:latest

Test the Hyrax image like this:

docker run -d -h hyrax -p 8080:8080 --name=hyrax opendap/hyrax:latest

Test the Hyrax with ncWMS image like this:

docker run -d -h hyrax -p 8080:8080 --name=hyrax_ncwms opendap/hyrax_ncwms:latest

2.3 Upload the tested images to Docker Hub

To get them into docker hub:

docker push opendap/hyrax:xx.yy.zz
docker push opendap/hyrax:latest
docker push opendap/hyrax_ncwms:xx.yy.zz
docker push opendap/hyrax_ncwms:latest

2.4 Update Documention

Make sure the the hyrax-docker/README.md file is up to date and that the instruction continue to reflect the current build.

2.5 Tag the Release

  1. Make sure all changes have been pushed and merged to the master branch.
  2. Since the Docker project is essentially linked to a Hyrax Release, tag this point in the master branch with the Hyrax release number
    • git tag -a hyrax-<numbers> -m "Hyrax <number>"
    • git push origin hyrax-<numbers>














3 OLD Release Recipe

3.1 OLD Create Release template and update as needed

OLD 1. Create a new Docker release directory and copy the files from the previous release into the new directory
mkdir hyrax-xx.yy.zz
cp -R hyrax-1.13.4/* hyrax-xx.yy.zz
OLD 2. In each of the following files
hyrax-xx.yy.zz/besd/Dockerfile
hyrax-xx.yy.zz/olfs/Dockerfile
hyrax-xx.yy.zz/hyrax/Dockerfile
hyrax-xx.yy.zz/ncWMS/Dockerfile
OLD You will need to edit 3 specific sections
The metadata LABEL group:
LABEL vendor="OPeNDAP Incorporated" 
LABEL org.opendap.hyrax.version="1.13.4"
LABEL org.opendap.hyrax.release-date="2017-06-05"
LABEL org.opendap.hyrax.version.is-production="true"
The version information:
# HYRAX VERSION INFO 
ENV HYRAX_VERSION=1.13.4 
ENV LIBDAP_VERSION=3.19.0-1
ENV BES_VERSION=3.18.0-1
ENV OLFS_VERSION=1.16.3
And you will need to review and probably edit the down load URL for each component:
# RELEASE URLs
ENV LIBDAP_RPM="https://www.opendap.org/pub/binary/hyrax-${HYRAX_VERSION}/centos-7.x/libdap-${LIBDAP_VERSION}.el7.centos.x86_64.rpm"
ENV BES_RPM="https://www.opendap.org/pub/binary/hyrax-${HYRAX_VERSION}/centos-7.x/bes-${BES_VERSION}.static.el7.centos.x86_64.rpm"
ENV OLFS_WAR_URL="https://www.opendap.org/pub/olfs/olfs-${OLFS_VERSION}-webapp.tgz"

Once updated, build the docker images and test them. If it all works tag the built image and push it to docker hub.

3.2 OLD Update Documention

Make sure the the *hyrax-docker/README.md* file is up to date and that the instruction continue to reflect the current build.

Note
This page is pretty thin as we have not yet made a second release of our Docker images. Doing so will help us fill in the blanksy.