Skip to content

Latest commit

 

History

History
76 lines (63 loc) · 5.86 KB

README.md

File metadata and controls

76 lines (63 loc) · 5.86 KB

METexpress apps

This directory contains METexpress app source code. A METexpress app is a Meteor app that is based on the MATS Model Analysis Tool Suite application framework.

These apps are specifically designed to be used to visualize MET data that has been loaded into a METdatadb database.

Dependencies:

  • It is expected that you are building and deploying these apps on a linux based system.

  • It is expected that you do not build these tools as a priviledged user.

  • The build user should have standard linux development tools installed - gcc make etc.

  • You must have installed Meteor.js.

  • It is expected that you have a recent NPM and node.js installed.

  • htpasswd (apache-utils) - the build user must have apache htpasswd installed.

  • jq - the build user must have jq version jq-1.6 or higher.

  • docker - you must have Docker version 19.03.8 or higher. Docker also needs to be running.

  • docker-compose - you must have docker-compose version 1.25.4.

  • The build user should be in the docker group or you must be running docker in Rootless mode (curently unverified).

  • METdatadb DATABASE

    METexpress depends upon a METdatadb database. This database has a specific schema and specific load tools. It is required that you have an installed METviewer and that you have read/write credentials to the METdatadb database which you can provide for the METexpress setup and configuration.

  • METexpress depends upon metadata that is derived from a METdatadb database. Before using METexpress you must create this metadata. Please refer to this document. The metadata scripts are in the scripts/matsMetaDataForApps/createMetaData/mysql/metexpress directory in this code tree.

Build

These apps are always built into and deployed as Docker images. The most recent, standard, production ready docker images are in the public docker repository. Unless you have a non standard reason for building, use the standard images. For that you can skip to the Installation section.

To build these apps use the included build script. Be sure to set the environment variables listed in the dependencies section above.

steps:

first either ....

next

  • cd to [yourMetexpressDir] (if you are not in the top level of the git repo the build will fail)
to build them all
  • ./scripts/common/metexpress_build_deploy_apps.sh -a
or to build a single app

[yourMetexpressDir]/scripts/common/metexpress_build_deploy_apps.sh -r met-some_app_name

or to get build options

[yourMetexpressDir]/scripts/common/metexpress_build_deploy_apps.sh -h

You must use a repository to install METexpress

METexpress can only be installed from Docker images. There are always the most recent images, maintained by the developers, at this repository. These instructions are to allow you to create your own private repository and to build the app images from scratch, and to push those apps to your own private repository.

You cannot push to the standard docker repository without authorization.

To push the images to your repository you need to have an account on dockerhub, a repository there, and you must set the credentials for that account into a credentials file that is named ~builduser/.metexpress-repo-credentials.

The ~builduser/.metexpress-repo-credentials refers to a file named ~builduser/.metexpress-repo-credentials that is placed into the build user's home directory. The ~builduser/.metexpress-repo-credentials file has the following contents.

export docker_user='repo_user'

export docker_password='repo_password'

export repo='repository'

Versions

  • All built apps will get the version specified in the -v parameter. If you do not specify a version they will automatically get a version based on the build date. The version will be formatted like "YYYYMMDD".

Once you have demonstrated to yourself that the code builds without pushing...

  • once you have a repository set up and the credentials configured, you can push your images to your repository by doing a new build and including the [-i] parameter - which means [push images].
  • alternatively you can use [-l] which will build the images locally and leave them on your build system. Building local images can be very disk expensive. You must clean up local images periodically if you leave them on your system This command will remove non-running local images. docker system prune -af

Installation

For installation and configuration refer to the README-INSTALL.md in the container_deployment directory.