Add MQIPT Sample (#93)
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -6,3 +6,4 @@ test/kubernetes/vendor
|
|||||||
build
|
build
|
||||||
coverage
|
coverage
|
||||||
downloads
|
downloads
|
||||||
|
incubating/mqipt/ms81*
|
||||||
|
|||||||
32
incubating/mqipt/Dockerfile
Normal file
32
incubating/mqipt/Dockerfile
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
# © Copyright IBM Corporation 2018
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
# you may not use this file except in compliance with the License.
|
||||||
|
# You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
# See the License for the specific language governing permissions and
|
||||||
|
# limitations under the License.
|
||||||
|
|
||||||
|
FROM ibmcom/ibmjava:jre
|
||||||
|
|
||||||
|
ARG IPTFILE=ms81_2.1.0.4_amd64_linux_2.tar
|
||||||
|
|
||||||
|
COPY $IPTFILE /opt/
|
||||||
|
|
||||||
|
RUN rm -rf /var/lib/apt/lists/* \
|
||||||
|
&& cd /opt/ \
|
||||||
|
&& tar xvf ./$IPTFILE \
|
||||||
|
&& chmod -R a-w /opt/mqipt
|
||||||
|
|
||||||
|
ENV MQIPT_PATH=/opt/mqipt
|
||||||
|
|
||||||
|
COPY startMQIPT.sh /usr/local/bin
|
||||||
|
|
||||||
|
VOLUME /var/mqipt
|
||||||
|
|
||||||
|
ENTRYPOINT ["startMQIPT.sh"]
|
||||||
44
incubating/mqipt/README.md
Normal file
44
incubating/mqipt/README.md
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
# IBM MQ Internet Pass-Thru (SupportPac MS81) on Docker
|
||||||
|
|
||||||
|
IBM® MQ Internet Pass-Thru (MQIPT) is an extension to the base IBM MQ product. MQIPT runs as a stand-alone service that can receive and forward IBM MQ message flows, either between two IBM MQ queue managers or between an IBM MQ client and an IBM MQ queue manager.
|
||||||
|
MQIPT enables this connection when the client and server are not on the same physical network.
|
||||||
|
|
||||||
|
This repository contains all of the resources you will need to create a Docker image containing MQIPT for use in your infrastructure.
|
||||||
|
|
||||||
|
## How to build this image
|
||||||
|
|
||||||
|
1. First download MQIPT from the [IBM MQ SupportPacs website](http://www-01.ibm.com/support/docview.wss?rs=171&uid=swg27007198#3). MQIPT is a `Category 3 - Product Extensions SupportPacs` with the identifier `MS81`.
|
||||||
|
2. Ensure the MQIPT downloaded tar file is available in this directory.
|
||||||
|
3. If the tar file is not called `ms81_2.1.0.4_amd64_linux_2.tar` you will need to either:
|
||||||
|
* Rename the file.
|
||||||
|
* Supply the new name as a `--build-arg IPTFILE=<new name>` when executing the docker build command in the next step.
|
||||||
|
* Alter the Dockerfile `IPTFILE` ARG to specify the new file name.
|
||||||
|
4. Run the following command in this directory to build the Docker image. `docker build -t mqipt .`
|
||||||
|
|
||||||
|
Once the Docker build has completed you will have a new Docker image called `mqipt:latest` available which contains MQIPT.
|
||||||
|
|
||||||
|
## How to run this image
|
||||||
|
|
||||||
|
Before you run the MQIPT docker image you should understand how MQIPT operates, please ensure you have read the [MQIPT knowledgecenter](https://www.ibm.com/support/knowledgecenter/en/SSFKSJ_9.0.0/com.ibm.mq.ipt.doc/ipt0000_.htm) and any documentation supplied with the MQIPT installation tar.
|
||||||
|
|
||||||
|
First you need to create your [MQIPT configuration file](https://www.ibm.com/support/knowledgecenter/en/SSFKSJ_9.0.0/com.ibm.mq.ipt.doc/ipt2540_.htm) and place this file in a directory that can be [mounted to a docker container](https://docs.docker.com/storage/). This file **must** be called `mqipt.conf`; there is a sample file available in the MQIPT installation tar.
|
||||||
|
|
||||||
|
Run the following command to start a container with your built MQIPT image:
|
||||||
|
|
||||||
|
`docker run -d --volume <path to config>:/var/mqipt -p 1414:1414 mqipt`
|
||||||
|
|
||||||
|
If you want the container ports to be accessible outside of the host you must expose the required ports, this will map the container port to a port on the host, meaning you can connect to that port on the host and access MQIPT. You will need to provide multiple `-p` parameters to expose all of the ports required by your MQIPT configuration. **Note:** these must be available otherwise the docker container will fail to start.
|
||||||
|
|
||||||
|
See [Docker Run reference](https://docs.docker.com/engine/reference/run/#expose-incoming-ports) for more information on how to expose container ports.
|
||||||
|
|
||||||
|
## Further information
|
||||||
|
|
||||||
|
For further information on MQIPT please view the [MQIPT knowledgecenter](https://www.ibm.com/support/knowledgecenter/en/SSFKSJ_9.0.0/com.ibm.mq.ipt.doc/ipt0000_.htm)
|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
The Dockerfiles and associated code and scripts are provided as-is and licensed under the [Apache License 2.0](http://www.apache.org/licenses/LICENSE-2.0.html).
|
||||||
|
|
||||||
|
## Copyright
|
||||||
|
|
||||||
|
© Copyright IBM Corporation 2018
|
||||||
28
incubating/mqipt/startMQIPT.sh
Executable file
28
incubating/mqipt/startMQIPT.sh
Executable file
@@ -0,0 +1,28 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# -*- mode: sh -*-
|
||||||
|
# © Copyright IBM Corporation 2018
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
# you may not use this file except in compliance with the License.
|
||||||
|
# You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
# See the License for the specific language governing permissions and
|
||||||
|
# limitations under the License.
|
||||||
|
|
||||||
|
stop()
|
||||||
|
{
|
||||||
|
/opt/mqipt/bin/mqiptAdmin -stop
|
||||||
|
}
|
||||||
|
|
||||||
|
trap stop SIGTERM SIGINT
|
||||||
|
|
||||||
|
# Run MQIPT and then wait on the process to end.
|
||||||
|
/opt/mqipt/bin/mqipt /var/mqipt &
|
||||||
|
MQIPTPROCESS=$!
|
||||||
|
|
||||||
|
wait "$MQIPTPROCESS"
|
||||||
Reference in New Issue
Block a user