Giter Site home page Giter Site logo

docker-irods's Introduction

iRODS Docker Containers

This repository consists of three containerised iRODS components:

  • postgres: PostgreSQL database for iCAT
  • irods-icat: iRODS iCAT server (4.2.x)
  • irods-resc: iRODS resource servers (4.2.x)

The intetion is to provide a working iRODS system for demonstration or test. It also builts in the following iRODS resource hierachy:

replResc:replication
├── passRescNL:passthru
│   └── randRescNL:random
│       ├── passRescNL_1:passthru
│       │   └── vaultNL_1:unixfilesystem
│       └── passRescNL_2:passthru
│           └── vaultNL_2:unixfilesystem
└── passRescOL:passthru
    └── randRescOL:rand 
    ├── passRescOL_1:passthru
    │   └── vaultOL_1:unixfilesystem
    └── passRescOL_2:passthru
    └── vaultOL_2:unixfilesystem

build and run containers

The three iRODS components are built and orchestrated via docker-compose. To build the containers, do

$ docker-compose --build --force-rm

To run and orchestrate the containers, use

$ docker-compose up

data persistency

Each container exposes volumes for data persistency. The list of volumes are provided in the table below:

container path in container usage
postgres /var/lib/postgresql/data database storage
irods-icat /etc/irods iCAT configuration
irods-icat /var/lib/irods/iRODS/server/log iCAT server log
irods-resc /etc/irods resource server configuration
irods-resc /var/lib/irods/iRODS/server/log resource server log
irods-resc /var/lib/irods/Vault resource server data vault

For iRODS services, the setup script (/var/lib/irods/scripts/setup_irods.py) is only executed when the file /etc/irods/.provisioned is not presented. The file /etc/irods/.provisioned is also created when the setup script is executed successfully.

environment variables

There are several environment variables can be set for setting up iRODS. The variables are feeded into the iRODS setup script (/var/lib/irods/scripts/setup_irods.py) for the first startup. They are summarised below:

variable name default value container
IRODS_ICAT_DBSERVER icat-db irods-icat
IRODS_ICAT_DBPORT 5432 irods-icat
IRODS_ICAT_DBNAME ICAT irods-icat, postgres
IRODS_ICAT_DBUSER irods irods-icat, postgres
IRODS_ICAT_DBPASS test123 irods-icat, postgres
IRODS_RESOURCE_OL irods-resc-ol irods-icat
IRODS_RESOURCE_NL irods-resc-nl irods-icat
IRODS_ZONE_NAME rdmtst irods-icat, irods-resc
IRODS_ZONE_PORT 1247 irods-icat, irods-resc
IRODS_DATA_PORT_RANGE_BEG 20000 irods-icat, irods-resc
IRODS_DATA_PORT_RANGE_END 20199 irods-icat, irods-resc
IRODS_CONTROLPLAN_PORT 1248 irods-icat, irods-resc
IRODS_ADMIN_USER irods irods-icat, irods-resc
IRODS_ADMIN_PASS test123 irods-icat, irods-resc
IRODS_ZONE_KEY TEMPORARY_zone_key irods-icat, irods-resc
IRODS_NEGOTIATION_KEY TEMPORARY_32byte_negotiation_key irods-icat, irods-resc
IRODS_CONTROLPLANE_KEY TEMPORARY__32byte_ctrl_plane_key irods-icat, irods-resc

PostgreSQL

The environment variables IRODS_ICAT_DB(SERVER|PORT|NAME|USER|PASS) should match the setup in the postgres container that is based on the official PostgreSQL container.

The iCAT database is created upon the start of the PostgreSQL container using this script.

docker-irods's People

Contributors

hurngchunlee avatar mkluge avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.