Environment and Configuration - digibib/koha-docker GitHub Wiki

A lot of the configuration is made through setting environment variables. See the various files in folder docker-compose for examples.

NB: ANY environment variable can be set/overridden in docker-compose by placing them in a file docker-compose/.env

example:

KOHA_ADMINPASS=supersecret

Env

docker-compose.env - basic variables

KOHA_BUILD     : the patched build of Koha, built in [Patch Setup](/digibib/koha-docker/wiki/Patch-Setup)
KOHA_VERSION   : The current tag of Koha base we build  on
KOHA_IMAGE_TAG : Only used as basis for building koha_dev image [Development Setup](/digibib/koha-docker/wiki/Development-Setup)
GITREF         : The git commmit ID used to identify image (locally or on Docker hub)
                 Only built from `master` branch

common.yml - mysql server and data volume

We highly recommend using a separate container for mysql server and a Data volume for mysql data. This is for persistence and mutability/separation of concerns. Which is docker basics, and a good thing.

build.yml - the base koha setup, for production use

pulls an image from docker hub (digibib/koha:GITREF) or builds locally with make build

KOHA_ADMINPASS                : database admin password
KOHA_ADMINUSER                : database admin userid
KOHA_INSTANCE                 : name of koha instance
INSTALL_LANGUAGES             : languages to install (space separated)
DEFAULT_LANGUAGE              : default language to use
EMAIL_ENABLED                 : enable email sending? ("True"|"False")
SMTP_SERVER_HOST              : smtp relay hostname
SMTP_SERVER_PORT              : smtp relay port
ENABLE_MYSQL_TRIGGERS         : enable Mysql triggers? (from files/installer/triggers)
ENABLE_MYSQL_SCHEMA           : enable Mysql Schema overrides? (from files/installer/schema)
MESSAGE_QUEUE_FREQUENCY       : frequency of message queue cronjob
SMS_DRIVER                    : SMS Driver module (must be included in code)
SMS_USER                      : SMS Driver userid
SMS_PASS                      : SMS driver password
API_PASSPHRASE                : Unreadable API server secret
SIP_AUTOPASS                  : Default SIP user password
SIP_WORKERS                   : Number of SIP workers
APACHE_MINSERVERS             : Number of apache server workers
APACHE_TIMEOUT                : Default timeout of apache requests
APACHE_SERVER_STATUS_NET      : Network range to allow access to apache Status endpoint
APACHE_REMOTE_INTERNAL_PROXY  : Remote proxy of apache
PLACK_MAX_REQUESTS            : Maximum concurrent requests of plack
PLACK_WORKERS                 : Number of plack workers
NLENABLE                      : Enable Norwegian Patron database?
NLBASEUSER                    : Userid of Norwegian Patron database
NLBASEPASS                    : Password of Norwegian Patron database
NLVENDORURL                   : Url of Norwegian Patron database
NLVENDORUSER                  : Vendor userid of Norwegian Patron database
NLVENDORPASS                  : Vendor password of Norwegian Patron database
NLVENDORKEY                   : Vendor key of Norwegian Patron database
PIDGEON_URL                   : Print notice receiver service
PIDGEON_USER                  : Print notice userid
PIDGEON_PASS                  : Print notice password

dev.yml - development setup

Workdir: kohadev

Purpose: sets up a koha git instance ready for development. Exposes mysql on port 3306.

Dockerfile: Uses a shallow clone of Koha-github repo and sets up development tools in /kohadev Sets up apache, plack and SIPserver to use code from git repo.

ENV

AUTHOR_NAME  : Bugzilla Name
AUTHOR_EMAIL : Bugzilla email
BUGZ_USER    : Bugzilla userid
BUGZ_PASS    : Bugzilla password

patched.yml - building a patched Koha

workdir: koha-patched

Purpose: build image for one-off containers to patch koha, run tests and produce .deb installation files for koha

Dockerfile: mounts in local folders /debian and /patches from workdir. Pulls and installs a Koha tag from github, applies patches in /patches folder, runs Koha unit tests and, if successful, builds debian packages ready for use in /debian folder. These can be added to an apt repo and used in normal package installs.