NIH | National Cancer Institute | NCI Wiki  

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

The lexevs-system-test is a Docker script that builds and tests all of the LexEVS components.  Jenkins is used to kick off the Docker script.

Jenkins

Currently the lexevs-system-test is configured and running nightly at NCI.

When the Jenkins build is started, it simply calls a Docker script, passing in parameters that define the LexEVS component branches.

...

  •  Builds MySQL containers
  • Clones LexEVS and LexEVS Remote projects from Git and builds each component
  • Creates a container for the URI Resolver
  • Builds and runs Junit tests for CTS2
  • Runs Junit tests against LexEVS
  • Loads terminologies into LexEVS
  • Creates a container for LexEVS Remote
  • Creates a container for CTS2
  • Runs Junit tests against LexEVS Remote
  • Stops and remove all containers.

NCI

...

Currently the lexevs-system-test is configured and running nightly at NCI.

Additionally, we would like to create more standard containers based on NCI's technology stack and have the containers stored in Nexus for us to pull into our builds.  For example, we would like to create a container with  NCI approved technology. These containers may include the following:

  • CentOS 7
  • Tomcat 8.x
  • Java 8.x
  • MySQL 5.6.x

We have found in our testing that versions of the above components are regularly updated and at times, the version we specify in our script is no longer available which subsequently breaks our builds.  Having consistent, known versions (based on NCI's technology stack) that are available for our builds would provide greater stability.

Next Steps

Once we have the current setup running at NCI, we would like to start looking at the following items:

...

Docker Locations

There are several different repositories from which Docker images can be pulled from.  Below is the strategy that is followed for determining where to pull images from.

Docker Hub

When ever possible, images will be pulled from the main Docker hub. This would include images for technology such as an OS, Tomcat, and MySQL.  This assumes that Docker hub has the correct version of the software that is approved by the NCI technology stack.

Docker Hub - LexEVS repository

When Docker hub doesn't have an image needed for our specific needs, we will build that image and push it out to our Docker hub public repository.   This repository is located here:

https://hub.docker.com/r/lexevs/lexevs/

NCI Nexus Docker Repository

If any of our images are specific and proprietary to NCI and their environment, the image will be built and pushed out to the internal NCI Nexus Docker Repository.  A possible instance for this may be that the CentOS 7 image has NCI specific security or other settings that are not appropriate for external users.  In this case the image would be stored internally on the NCI Nexus Docker repository.

Note:  If there is an image that is stored internally on the NCI Nexus Docker repository, it will only be available to users/builds internal to NCI's VPN.  We will need to fork our build scripts to pull "generic" images that are stored in the public LexEVS repository on Docker hub.  This will require dual maintenance.

Next Steps

Our next step is to work with the Systems team to develop LexEVS Docker container(s) that could be deployed to an NCI DEV Docker environment that could be used for testing.

NCI Configuration

These are the links to the systems at NCI that have been set up for migrating our lexevs-system-test script to NCI.

...