Skip to main content

Simple startup tool for docker containers.

bicti is intended as the entrypoint of a container, and provides a few helpers for systems that may require several services (for instance, fastcgi and nginx and cron and logrotate).

Its features include:

  • Declarative list of supported commands

  • Launch all demons or only a few ones

  • Drop into a shell instead

Depencies

bicti is written in Python; it supports all versions from 2.6 onwards. It also relies on runit (http://smarden.org/runit/) for daemon management.

Setup

In your dockerfile, add:

RUN apt-get -qqy install runit python python-pip
RUN pip install bicti && ln -s /sbin/bicti `which bicti`
ADD ./bicti.ini /etc/bicti.ini
RUN /sbin/bicti --setup
ENTRYPOINT "/sbin/bicti"

This will:

  1. Retrieve bicti and its dependencies

  2. Load your bicti.ini configuration file (expected at /etc/bicti.ini)

  3. Setup all daemon startup scripts in /etc/runit

  4. Declare bicti as your entry point.

Core concepts

Beyond a few command-line flags, most of bicti’s job is in setting up the configuration for runit.

Upon startup, bicti will:

  1. Load its configuration file (/etc/bicti.ini)

  2. Setup runit to start the declared services

  3. Transfer control to runit, which handles daemon auto-restart, orphan process reaping, etc.

Usage

$ docker run my/image --help
usage: bicti.py [--config CONFIG] [--root ROOT] [-h] [--setup]
                [--shell [SHELL]] [--all]
                [SERVICE [SERVICE ...]]

Bicti, the docker inner setup.

positional arguments:
  SERVICE               Services to start (valid options: cron,uwsgi)

optional arguments:
  --config CONFIG, -c CONFIG
                        Read configuration from CONFIG
  --root ROOT           Use paths relative to ROOT
  -h, --help            Show this help message and exit
  --setup               Setup the service files
  --shell [SHELL]       Drop to a shell (default=/bin/bash)
  --all                 Start all services

Configuration file:

[bicti]
; Run before any service is started
setup = /sbin/my-image-setup
; Run once all services have been stopped
teardown = /sbin/my-image-cleanup

; One section per service
[cron]
; Actual command to run
command = /usr/bin/cron
; Require another service to be started first
after = syslog

[uwsgi]
command = /usr/bin/uwsgi
; Command to run before starting the service
setup_command = mkdir /var/log/uwsgi
; Special uid/gid
uid = www-data
gid = www-data

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bicti-0.1.1.tar.gz (5.4 kB view details)

Uploaded Source

File details

Details for the file bicti-0.1.1.tar.gz.

File metadata

  • Download URL: bicti-0.1.1.tar.gz
  • Upload date:
  • Size: 5.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for bicti-0.1.1.tar.gz
Algorithm Hash digest
SHA256 e3d44b6a8b725a731c76dcf82e910845f60baa9590b89ac0c8442d2260973dfe
MD5 4fe6128a282eea619d540308bb8f0682
BLAKE2b-256 da799cb4eb7804ab92389eeacd58f639fdf88e90dba1c95e4f4ad6246c385f0d

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.1.1 This release

1 file

0.1.0

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page