FROM ibmcom/mq:9.1.2.0-UBI # The packages to be installed ARG PACKAGES="git ca-certificates vi gcc glibc-devel wget" # The URL to download the MQ installer from in tar.gz format ARG MQ_URL=http://public.dhe.ibm.com/ibmdl/export/pub/software/websphere/messaging/mqadv/mqadv_dev912_linux_x86-64.tar.gz # The URLs to download golang release, MQ golang extensions and MQ metrics ARG GOLANG_ARCHIVE=go1.12.7.linux-amd64.tar.gz ARG GOLANG_URL=https://dl.google.com/go # MQ golang extensions URL and repo ARG MQ_GOLANG_REPO=github.com/ibm-messaging/mq-golang ARG MQ_GOLANG_URL=http://$MQ_GOLANG_REPO # MQ metrics URL and repo ARG MQ_METRICS_REPO=github.com/ibm-messaging/mq-metric-samples ARG MQ_METRICS_URL=https://$MQ_METRICS_REPO # The GitHub repositories related to Prometheus go client, Logrus for logging and dep ARG MQ_PROMETHEUS_CLIENT_REPO=github.com/prometheus/client_golang/prometheus ARG GO_LOGGING_REPO=github.com/Sirupsen/logrus ARG GO_DEP_REPO=github.com/golang/dep/cmd/dep USER 0 COPY mirrors.repo /etc/yum.repos.d/mirrors.repo # Install additional packages required to build mq_prometheus, this install process and the runtime scripts RUN microdnf install $PACKAGES \ # Download and extract the MQ installation files for the SDK files && mkdir -p /tmp/mq \ && cd /tmp/mq \ && curl -LO $MQ_URL \ && tar -zxvf ./*.tar.gz \ # Install the missing MQ SDK using the RPM packages && cd /tmp/mq/MQServer \ && rpm -ivh MQSeriesSDK*.rpm \ # install the go package && wget $GOLANG_URL/$GOLANG_ARCHIVE \ && tar -xzf $GOLANG_ARCHIVE \ && mv go /usr/local \ && export GOROOT=/usr/local/go \ && export GOPATH=$HOME/gowork \ && export PATH=$PATH:$GOROOT/bin \ && mkdir $GOPATH \ && cd $GOPATH \ && git clone $MQ_GOLANG_URL src \ && go get -u $GO_LOGGING_REPO \ && go get -u $MQ_PROMETHEUS_CLIENT_REPO \ && export CGO_LDFLAGS_ALLOW="-Wl,-rpath.*" \ && git clone $MQ_GOLANG_URL src/$MQ_GOLANG_REPO \ && go install ./src/$MQ_GOLANG_REPO/ibmmq \ && go install ./src/$MQ_GOLANG_REPO/mqmetric \ && go get -u $GO_DEP_REPO \ && git clone $MQ_METRICS_URL src/$MQ_METRICS_REPO \ && cd $GOPATH/src/$MQ_METRICS_REPO \ && $GOPATH/bin/dep ensure \ && cd cmd/mq_prometheus/ \ && go install ./ \ && cp mq_prometheus.sh mq_prometheus.mqsc $GOPATH/bin