Skip to content
This repository was archived by the owner on Mar 16, 2026. It is now read-only.

modusbox/mq-container

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

736 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FWaaS IBM MQ container

This repo is used to build an IBM MQ container image suitable for the FWaaS project, or any other project that uses Quarkus and wants to connect to IBM MQ. It's a fork of the IBM MQ container repo and includes all the changes described at the Developing JMS apps with Quarkus and GraalVM INCLUDING a fix to a bug that took me days to debug.

Why do we need this image? If you use the stock IBM MQ Java jars, you can't create a native executable as the classes use reflection and instrospection not supported bny quarkus or any of its extensions. This image provides an AMQP channel that can be used from a Quarkus native app. The really nice aspect is that on the Quarkus app we can use JMS, so for example you can use the Apache Camel JMS producer/consumer directly, as it uses the javax.jms.ConnectionFactory created by the Quarkus Qpid JMS- AMQP extension

This is a fork of the main IBM MQ container used to create a docker image that includes the configuration needed to include the AMQP channel, as described in https://developer.ibm.com/components/ibm-mq/tutorials/mq-running-ibm-mq-apps-on-quarkus-and-graalvm-using-qpid-amqp-jms-classes/

From that page: "IBM MQ provides support for AMQP APIs through an AMQP channel that accepts connections from AMQP client applications. Using IBM MQ, Apache Qpid JMS applications can do publish/subscribe messaging and point-to-point messaging. Messaging is not just confined to AMQP client applications, as intercommunication with client applications based on other IBM MQ API stacks is possible."

We're using this image to connect from a Quarkus qpid/JMS app

The main modifications are on files:

  • install-mq.sh
  • incubating/mqadvanced-server-dev/10-dev.mqsc.tpl

Config: See the original readme below

Building the image

9.2.3.0 (2021-07-22) Updated to MQ version 9.2.3.0

MQ_VERSION=9.2.3.0 make build-devserver

This will show the full image tag at the end of the log:

Successfully built 43124b5dbef8
Successfully tagged ibm-mqadvanced-server-dev:9.2.3.0-amd64

You can then tag & push the new version like:

docker tag ibm-mqadvanced-server-dev:9.2.3.0-amd64 849905330246.dkr.ecr.us-west-2.amazonaws.com/fwaas/ibm-mqadvanced-server-dev-amqp:9.2.3.0-amd64_fwaas_5
docker push 849905330246.dkr.ecr.us-west-2.amazonaws.com/fwaas/ibm-mqadvanced-server-dev-amqp:9.2.3.0-amd64_fwaas_5

Original README

Build Status

Note: The master branch may be in an unstable or even broken state during development. To get a stable version, please use the correct branch for your MQ version, instead of the master branch.

Overview

Run IBM® MQ in a container.

You can build an image containing either IBM MQ Advanced, or IBM MQ Advanced for Developers. The developer image includes a default developer configuration, to make it easier to get started. There is also an incubating folder for additional images for other MQ components, which you might find useful.

Build

After extracting the code from this repository, you can follow the build documentation to build an image.

Usage

See the usage documentation for details on how to run a container.

Note that in order to use the image, it is necessary to accept the terms of the IBM MQ license.

Environment variables supported by this image

  • LICENSE - Set this to accept to agree to the MQ Advanced for Developers license. If you wish to see the license you can set this to view.
  • LANG - Set this to the language you would like the license to be printed in.
  • MQ_QMGR_NAME - Set this to the name you want your Queue Manager to be created with.
  • LOG_FORMAT - Set this to change the format of the logs which are printed on the container's stdout. Set to "json" to use JSON format (JSON object per line); set to "basic" to use a simple human-readable format. Defaults to "basic".
  • MQ_ENABLE_METRICS - Set this to true to generate Prometheus metrics for your Queue Manager.

See the default developer configuration docs for the extra environment variables supported by the MQ Advanced for Developers image.

Kubernetes

If you want to use IBM MQ in Kubernetes, you can find an example Helm chart here: IBM charts. This can be used to run the container on a cluster, such as IBM Cloud Private or the IBM Cloud Kubernetes Service.

Issues and contributions

For issues relating specifically to the container image or Helm chart, please use the GitHub issue tracker. If you do submit a Pull Request related to this Docker image, please indicate in the Pull Request that you accept and agree to be bound by the terms of the IBM Contributor License Agreement.

License

The Dockerfiles and associated code and scripts are licensed under the Apache License 2.0. Licenses for the products installed within the images are as follows:

  • IBM MQ Advanced for Developers (International License Agreement for Non-Warranted Programs). This license may be viewed from an image using the LICENSE=view environment variable as described above or by following the link above.
  • IBM MQ Advanced (International Program License Agreement). This license may be viewed from an image using the LICENSE=view environment variable as described above or by following the link above.

Note: The IBM MQ Advanced for Developers license does not permit further distribution and the terms restrict usage to a developer machine.

Copyright

© Copyright IBM Corporation 2015, 2021

About

Container images for IBM® MQ

Resources

License

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • Go 71.3%
  • Shell 8.0%
  • Makefile 6.2%
  • C 6.0%
  • Smarty 5.5%
  • Java 1.6%
  • Dockerfile 1.4%