Skip to content

Capability Container

Michael Meisinger edited this page Sep 6, 2016 · 3 revisions

The capability container is a UNIX process that provides a secure run-time environment for ScionCC processes, such as service processes. The container provides configuration, logging, messaging and other infrastructure services for processes to run.

See also:

Basic Dependencies

To start the container, the following dependencies need to be running, see README:

  • PostgreSQL 9.3 or greater, with PostGIS extension, plpythonu extension
  • RabbitMQ 2.x or greater

A configuration file (e.g. res/config/pyon.local.yml) needs to be provided with hostnames and passwords of these dependencies and other configuration overrides.

Also, the container required library environment needs to be built, following the steps described in INSTALL for the virtualenv, buildout and operating system dependencies.

Container Start

The following command starts a container and deploys a list of processes as configured in the provided deploy file. A deploy file is a file listing processes to start and the order in which to start them.

bin/pycc -r res/deploy/basic.yml

Use the following command for help with additional options:

bin/pycc --help

Container Shell

By default, the capability container drops into an interactive shell after starting all requested processes. This interactive shell provides access to an IPython environment and can be used for debugging and interactive development. It provides access to all internal data structures.

In production deployments the container shell should be disabled and the container process run in the background, using the -n option. For debugging purposes, it is possible to use the bin/manhole program to connect to the container process and provide an interactive shell. Exit with Ctrl-D.

bin/manhole
bin/manhole manhold-pid.json

Container Configuration

The system config file is loaded from res/config/pyon.yml. The default override file is applied from res/config/pyon.local.yml. Additional overrides can be applied using the pycc command line using the -c option or by providing key=value arguments directly on the command line.

See also Configuration

Multi-Container Deployment

See Multi Container Deployment

Clone this wiki locally