Using Qinling with Docker ========================= Docker containers provide an easy way to quickly deploy independent or networked Qinling instances in seconds. This guide describes the process to launch an all-in-one Qinling container. Docker Installation ------------------- The following links contain instructions to install latest Docker software: * `Docker Engine `_ * `Docker Compose `_ Build the Qinling Image Manually -------------------------------- Execute the following command from the repository top-level directory:: docker build -t qinling -f tools/docker/Dockerfile . The Qinling Docker image has one build parameter: Running Qinling using Docker Compose ------------------------------------ To launch Qinling in the single node configuration:: docker-compose -f tools/docker/docker-compose/infrastructure.yaml \ -f tools/docker/docker-compose/qinling-single-node.yaml \ -p qinling up -d To launch Qinling in the multi node configuration:: docker-compose -f tools/docker/docker-compose/infrastructure.yaml \ -f tools/docker/docker-compose/qinling-multi-node.yaml \ -p qinling up -d The `--build` option can be used when it is necessary to rebuild the image, for example: docker-compose -f tools/docker/docker-compose/infrastructure.yaml \ -f tools/docker/docker-compose/qinling-single-node.yaml \ -p qinling up -d --build Running the Qinling client from the Docker Compose container ------------------------------------------------------------ To run the qinling client against the server in the container using the client present in the container: docker run -it qinling_qinling1 qinling runtime list Configuring Qinling ------------------- The Docker image contains the minimal set of Qinling configuration parameters by default: +--------------------+------------------+--------------------------------------+ |Name |Default value | Description | +====================+==================+======================================+ |`MESSAGE_BROKER_URL`|rabbit://guest:gu\|The message broker URL | | |est@rabbitmq:5672 | | +--------------------+------------------+----------------------+---------------+ |`DATABASE_URL` |sqlite:///qinling\|The database URL | | |.db | | +--------------------+------------------+----------------------+---------------+ |`UPGRADE_DB` |false |If the `UPGRADE_DB` equals `true`, | | | |a database upgrade will be launched | | | |before Qinling main process | +--------------------+------------------+----------------------+---------------+ |`QINLING_SERVER` |all |Specifies which qinling server to | | | |start by the launch script. | +--------------------+------------------+----------------------+---------------+ |`LOG_DEBUG` |false |If set to true, the logging level will| | | |be set to DEBUG instead of the default| | | |INFO level. | +--------------------+------------------+----------------------+---------------+ The `/etc/qinling/qinling.conf` configuration file can be mounted to the Qinling Docker container by uncommenting and editing the `volumes` sections in the Qinling docker-compose files. Using Qinling Client -------------------- The Qinling API will be accessible from the host machine on the default port 7070. Install `python-qinlingclient` on the host machine to execute qinling commands.