Skip to content

okoko/qpid-cpp-docker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

47 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Apache Qpid C++ Broker Docker image

Broker documentation is at https://qpid.apache.org/components/cpp-broker/index.html.

The Docker image entrypoint is copied from https://github.com/scholzj/docker-qpid-cpp. It performs configuration of the daemon according to environment variables, or runs some other command if not started with qpidd command.

You can get online line help using command

docker build -t qpid .
docker run --rm qpid --help

Qpid configuration

Qpid daemon has AMQP 0-10 heritage. AMQP 1.0 is not well documented.

There is some documentation in the source code at qpid-cpp/docs/amqp-1.0.txt. The source is at https://github.com/apache/qpid-cpp.

The AMQP 0-10 queues and exchanges can be persisted, but AMQP 1.0 object must be created every time the broker starts. The creation is done using AMQP messages.

The broker offers options --topic-patterns and --queue-patterns for defining policies at startup, but this does not allow defining any of the properties for the queues and topics created automatically. The pattern would seem to be a POSIX basic regular expression.

Using the image

The Docker image can be configured using following environment variables.

  • QPIDD_HOME defines the broker home directory, where most files will be stored. By default /var/lib/qpidd
  • QPIDD_DATA_DIR defines broker's data-dir and pid-dir options. By default $QPIDD_HOME/work
  • QPIDD_SASL_DB defines the path to the SASL databases containing users and passwords. By default $QPIDD_HOME/etc/sasl/qpidd.sasldb
  • QPIDD_SASL_CONFIG_DIR defines the directory where the SASL configuration file will be stored. By default $QPIDD_HOME/etc/sasl/
  • QPIDD_ADMIN_USERNAME and QPIDD_ADMIN_PASSWORD allow to specify the username and password for the admin user which will be created. If not specified, no user will be created.
  • QPIDD_SSL_DB_DIR defines the directory where the NSS tools certificate database will be created. By default $QPIDD_HOME/etc/ssl
  • QPIDD_SSL_SERVER_PUBLIC_KEY and QPIDD_SSL_SERVER_PRIVATE_KEY specify the public crt file and private pem key file contents of the broker certificate. (The keys should be stored in these variables as strings, not as a path to file). If specified, the broker will be configured with SSL
  • QPIDD_SSL_TRUSTED_CA defines the certificates which will be accepted as trusted CA certificates
  • QPIDD_SSL_TRUSTED_PEER defines the certificates which will be accepted as trusted peers certificates
  • QPIDD_SSL_NO_DICT specifies that the broker should not allow username/password based connections over SSL. It will allow only SSL client authentication.
  • QPIDD_ACL_FILE defines where the ACL file will be stored. By default $QPIDD_HOME/etc/qpidd.acl
  • QPIDD_ACL_RULES can be used to specify the exact ACL rules which will be used. If not specified the ACL file will be either left empty, or in case QPIDD_ADMIN_USERNAME was specified it will allow everything for the admin user and forbid everything for everyone else
  • QPIDD_STORE_DIR defines the broker message store directory. By default $QPIDD_HOME/store
  • QPIDD_PAGING_DIR defines the broker paging directory. By default $QPIDD_HOME/paging
  • QPIDD_CONFIG_FILE defines the path to the broker configuration file. By default $QPIDD_HOME/etc/qpidd.conf
  • QPIDD_CONFIG_OPTIONS might contain the exact broker configuration directives which will be written into the configuration file. If not specified, the configuration file will be generated.

Releases

No releases published

Packages

 
 
 

Contributors 3

  •  
  •  
  •