Skip to content

Commit f73347a

Browse files
authored
Merge pull request #201 from parrobe/master
Further RHEL fixes
2 parents 11b94de + ad1b2db commit f73347a

File tree

5 files changed

+55
-44
lines changed

5 files changed

+55
-44
lines changed

Makefile-RHEL

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -47,9 +47,6 @@ MQ_PACKAGES ?= MQSeriesRuntime-*.rpm MQSeriesServer-*.rpm MQSeriesJava*.rpm MQSe
4747
###############################################################################
4848
# ARCH is the platform architecture (e.g. x86_64, ppc64le or s390x)
4949
ARCH = $(shell uname -m)
50-
# NUM_CPU is the number of CPUs available to Docker. Used to control how many
51-
# test run in parallel
52-
NUM_CPU = $(or $(shell docker info --format "{{ .NCPU }}"),2)
5350
# BASE_IMAGE_TAG is a normalized version of BASE_IMAGE, suitable for use in a Docker tag
5451
BASE_IMAGE_TAG=$(subst /,-,$(subst :,-,$(BASE_IMAGE)))
5552
MQ_IMAGE_DEVSERVER_BASE=mqadvanced-server-dev-base:$(MQ_VERSION)-$(ARCH)-$(BASE_IMAGE_TAG)
@@ -116,15 +113,15 @@ test-advancedserver: check-test-prereqs test/docker/vendor
116113
$(info $(SPACER)$(shell printf $(TITLE)"Test $(MQ_IMAGE_ADVANCEDSERVER) on $(shell docker --version)"$(END)))
117114
buildah push $(MQ_IMAGE_ADVANCEDSERVER) docker-daemon:$(MQ_IMAGE_ADVANCEDSERVER)
118115
docker tag docker.io/$(MQ_IMAGE_ADVANCEDSERVER) $(MQ_IMAGE_ADVANCEDSERVER)
119-
cd test/docker && TEST_IMAGE=$(MQ_IMAGE_ADVANCEDSERVER) EXPECTED_LICENSE=Production go test -parallel $(NUM_CPU) $(TEST_OPTS_DOCKER)
116+
cd test/docker && TEST_IMAGE=$(MQ_IMAGE_ADVANCEDSERVER) EXPECTED_LICENSE=Production go test $(TEST_OPTS_DOCKER)
120117

121118

122119
.PHONY: test-devserver
123120
test-devserver: check-test-prereqs test/docker/vendor
124121
$(info $(SPACER)$(shell printf $(TITLE)"Test $(MQ_IMAGE_DEVSERVER) on $(shell docker --version)"$(END)))
125122
buildah push $(MQ_IMAGE_DEVSERVER) docker-daemon:$(MQ_IMAGE_DEVSERVER)
126123
docker tag docker.io/$(MQ_IMAGE_DEVSERVER) $(MQ_IMAGE_DEVSERVER)
127-
cd test/docker && TEST_IMAGE=$(MQ_IMAGE_DEVSERVER) EXPECTED_LICENSE=Developer DEV_JMS_IMAGE=$(DEV_JMS_IMAGE) go test -parallel $(NUM_CPU) -tags mqdev $(TEST_OPTS_DOCKER)
124+
cd test/docker && TEST_IMAGE=$(MQ_IMAGE_DEVSERVER) EXPECTED_LICENSE=Developer DEV_JMS_IMAGE=$(DEV_JMS_IMAGE) go test -tags mqdev $(TEST_OPTS_DOCKER)
128125

129126

130127
.PHONY: build-advancedserver

mq-advanced-server-rhel/install-mq-rhel.sh

Lines changed: 17 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -19,17 +19,12 @@
1919

2020
set -ex
2121

22-
readonly ctr=$1
23-
readonly scratchmnt=$2
22+
readonly ctr_mq=$1
23+
readonly mnt_mq=$2
2424
readonly archive=$3
2525
readonly mq_packages=$4
2626
readonly dir_extract=/tmp/extract
2727

28-
groupadd --root $scratchmnt --system --gid 888 mqm
29-
useradd --root $scratchmnt --system --uid 888 --gid mqm mqm
30-
usermod --root $scratchmnt -aG root mqm
31-
usermod --root $scratchmnt -aG mqm root
32-
3328
if [ ! -d ${dir_extract}/MQServer ]; then
3429
mkdir -p ${dir_extract}
3530
echo Extracting $archive
@@ -41,34 +36,36 @@ fi
4136

4237

4338
# Accept the MQ license
44-
buildah run --volume ${dir_extract}:/mnt/mq-download $ctr -- /mnt/mq-download/MQServer/mqlicense.sh -text_only -accept
39+
buildah run --volume ${dir_extract}:/mnt/mq-download $ctr_mq -- /mnt/mq-download/MQServer/mqlicense.sh -text_only -accept
4540

46-
buildah run --volume ${dir_extract}:/mnt/mq-download $ctr -- bash -c "cd /mnt/mq-download/MQServer && rpm -ivh $mq_packages"
41+
buildah run --volume ${dir_extract}:/mnt/mq-download $ctr_mq -- bash -c "cd /mnt/mq-download/MQServer && rpm -ivh $mq_packages"
4742

4843
rm -rf ${dir_extract}/MQServer
4944

5045
# Remove 32-bit libraries from 64-bit container
51-
find $scratchmnt/opt/mqm $scratchmnt/var/mqm -type f -exec file {} \; | awk -F: '/ELF 32-bit/{print $1}' | xargs --no-run-if-empty rm -f
46+
find $mnt_mq/opt/mqm $mnt_mq/var/mqm -type f -exec file {} \; | awk -F: '/ELF 32-bit/{print $1}' | xargs --no-run-if-empty rm -f
5247

5348
# Remove tar.gz files unpacked by RPM postinst scripts
54-
find $scratchmnt/opt/mqm -name '*.tar.gz' -delete
49+
find $mnt_mq/opt/mqm -name '*.tar.gz' -delete
5550

5651
# Recommended: Set the default MQ installation (makes the MQ commands available on the PATH)
57-
buildah run $ctr -- /opt/mqm/bin/setmqinst -p /opt/mqm -i
52+
buildah run $ctr_mq -- /opt/mqm/bin/setmqinst -p /opt/mqm -i
5853

59-
mkdir -p $scratchmnt/run/runmqserver
60-
chown 888:888 $scratchmnt/run/runmqserver
54+
mkdir -p $mnt_mq/run/runmqserver
55+
chown 888:888 $mnt_mq/run/runmqserver
6156

6257
# Remove the directory structure under /var/mqm which was created by the installer
63-
rm -rf $scratchmnt/var/mqm
58+
rm -rf $mnt_mq/var/mqm
6459

6560
# Create the mount point for volumes
66-
mkdir -p $scratchmnt/mnt/mqm
61+
mkdir -p $mnt_mq/mnt/mqm
6762

6863
# Create a symlink for /var/mqm -> /mnt/mqm/data
69-
buildah run $ctr -- ln -s /mnt/mqm/data /var/mqm
64+
buildah run $ctr_mq -- ln -s /mnt/mqm/data /var/mqm
7065

7166
# Optional: Set these values for the IBM Cloud Vulnerability Report
72-
sed -i 's/PASS_MAX_DAYS\t99999/PASS_MAX_DAYS\t90/' $scratchmnt/etc/login.defs
73-
sed -i 's/PASS_MIN_DAYS\t0/PASS_MIN_DAYS\t1/' $scratchmnt/etc/login.defs
74-
sed -i 's/password\t\[success=1 default=ignore\]\tpam_unix\.so obscure sha512/password\t[success=1 default=ignore]\tpam_unix.so obscure sha512 minlen=8/' $scratchmnt/etc/pam.d/password-auth
67+
sed -i 's/PASS_MAX_DAYS\t99999/PASS_MAX_DAYS\t90/' $mnt_mq/etc/login.defs
68+
sed -i 's/PASS_MIN_DAYS\t0/PASS_MIN_DAYS\t1/' $mnt_mq/etc/login.defs
69+
sed -i 's/password\t\[success=1 default=ignore\]\tpam_unix\.so obscure sha512/password\t[success=1 default=ignore]\tpam_unix.so obscure sha512 minlen=8/' $mnt_mq/etc/pam.d/password-auth
70+
71+
buildah run $ctr_mq -- cp -rs /opt/mqm/licenses/ /

mq-advanced-server-rhel/mq-buildah.sh

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,6 @@ set -e
2626
# Setup MQ server working container
2727
###############################################################################
2828

29-
# Use a "scratch" container, so the resulting image has minimal files
30-
# Resulting image won't have yum, for example
3129
readonly ctr_mq=$(buildah from rhel7)
3230
readonly mnt_mq=$(buildah mount $ctr_mq)
3331
readonly archive=downloads/$1
@@ -40,6 +38,11 @@ readonly mqdev=$5
4038
# Install MQ server
4139
###############################################################################
4240

41+
groupadd --root ${mnt_mq} --system --gid 888 mqm
42+
useradd --root ${mnt_mq} --system --uid 888 --gid mqm mqm
43+
usermod --root ${mnt_mq} -aG root mqm
44+
usermod --root ${mnt_mq} -aG mqm root
45+
4346
# Install the packages required by MQ
4447
buildah run $ctr_mq -- yum install -y --setopt install_weak_deps=false --setopt=tsflags=nodocs --setopt=override_install_langs=en_US.utf8 \
4548
bash \
@@ -84,8 +87,6 @@ else
8487
DISNAME="IBM MQ Advanced Server"
8588
fi
8689

87-
88-
8990
buildah config \
9091
--port 1414/tcp \
9192
--port 9157/tcp \
@@ -97,6 +98,10 @@ buildah config \
9798
--label name="${tag%:*}" \
9899
--label vendor="IBM" \
99100
--label version="$version" \
101+
--label release="1" \
102+
--label run="docker run -d -e LICENSE=accept --name ibm-mq ${tag%:*}" \
103+
--label summary="$DISNAME" \
104+
--label description="IBM MQ is messaging middleware that simplifies and accelerates the integration of diverse applications and business data across multiple platforms. It uses message queues to facilitate the exchanges of information and offers a single messaging solution for cloud, mobile, Internet of Things (IoT) and on-premises environments." \
100105
--env AMQ_ADDITIONAL_JSON_LOG=1 \
101106
--env LANG=en_US.UTF-8 \
102107
--env LOG_FORMAT=basic \

mq-advanced-server-rhel/mq-golang-sdk-buildah.sh

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -23,25 +23,32 @@ readonly tag=$2
2323
# Use plain RHEL 7 container
2424
# Note: Red Hat's devtools/go-toolset-7-rhel7 image doesn't allow use of 'root'
2525
# user required for installing the MQ SDK
26-
readonly ctr=$(buildah from rhel7)
27-
readonly mnt=$(buildah mount $ctr)
26+
readonly ctr_mq=$(buildah from rhel7)
27+
readonly mnt_mq=$(buildah mount $ctr_mq)
28+
29+
# Add mqm user
30+
groupadd --root $mnt_mq --system --gid 888 mqm
31+
useradd --root $mnt_mq --system --uid 888 --gid mqm mqm
32+
usermod --root $mnt_mq -aG root mqm
33+
usermod --root $mnt_mq -aG mqm root
2834

2935
# Enable Yum repository for "optional" RPMs, which is needed for "golang"
30-
buildah run ${ctr} -- yum-config-manager --enable rhel-7-server-optional-rpms
36+
buildah run ${ctr_mq} -- yum-config-manager --enable rhel-7-server-optional-rpms
3137
# Install Go compiler
32-
buildah run ${ctr} -- yum install -y golang git gcc
38+
buildah run ${ctr_mq} -- yum install -y golang git gcc
39+
3340
# Install the MQ SDK into the Go builder image
34-
./mq-advanced-server-rhel/install-mq-rhel.sh ${ctr} "${mnt}" "${mq_archive}" "MQSeriesRuntime-*.rpm MQSeriesSDK-*.rpm MQSeriesSamples*.rpm"
41+
./mq-advanced-server-rhel/install-mq-rhel.sh ${ctr_mq} "${mnt_mq}" "${mq_archive}" "MQSeriesRuntime-*.rpm MQSeriesSDK-*.rpm MQSeriesSamples*.rpm"
3542
# Clean up Yum files
36-
buildah run ${ctr} -- yum clean all --releasever 7
37-
rm -rf ${mnt}/var/cache/yum/*
38-
buildah unmount ${ctr}
43+
buildah run ${ctr_mq} -- yum clean all --releasever 7
44+
rm -rf ${mnt_mq}/var/cache/yum/*
45+
buildah unmount ${ctr_mq}
3946
# Set environment variables for MQ/Go compilation
4047
buildah config \
4148
--os linux \
4249
--env CGO_CFLAGS="-I/opt/mqm/inc/" \
4350
--env CGO_LDFLAGS_ALLOW="-Wl,-rpath.*" \
44-
${ctr}
45-
buildah commit ${ctr} ${tag}
51+
${ctr_mq}
52+
buildah commit ${ctr_mq} ${tag}
4653

47-
buildah rm ${ctr}
54+
buildah rm ${ctr_mq}

mq-advanced-server-rhel/mqdev-buildah.sh

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,11 +35,12 @@ readonly tag=$2
3535
readonly version=$3
3636

3737

38-
useradd --root $mnt_mq --system --uid 889 --gid mqm admin
39-
groupadd --root $mnt_mq --system --gid 890 mqclient
40-
useradd --root $mnt_mq --system --uid 890 --gid mqclient app
38+
useradd --root $mnt_mq --gid mqm admin
39+
groupadd --root $mnt_mq --system mqclient
40+
useradd --root $mnt_mq --gid mqclient app
4141

42-
buildah run $ctr -- echo admin:passw0rd | chpasswd
42+
buildah run $ctr_mq -- id admin
43+
buildah run $ctr_mq -- sh -c "echo admin:passw0rd | chpasswd"
4344

4445
mkdir -p $mnt_mq/run/runmqdevserver
4546
chown 888:888 $mnt_mq/run/runmqdevserver
@@ -69,6 +70,10 @@ buildah config \
6970
--label name="${tag%:*}" \
7071
--label vendor="IBM" \
7172
--label version="$version" \
73+
--label release="1" \
74+
--label run="docker run -d -e LICENSE=accept --name ibm-mq-dev ${tag%:*}" \
75+
--label summary="IBM MQ Advanced Server Developer Edition" \
76+
--label description="IBM MQ is messaging middleware that simplifies and accelerates the integration of diverse applications and business data across multiple platforms. It uses message queues to facilitate the exchanges of information and offers a single messaging solution for cloud, mobile, Internet of Things (IoT) and on-premises environments." \
7277
--env AMQ_ADDITIONAL_JSON_LOG=1 \
7378
--env LANG=en_US.UTF-8 \
7479
--env LOG_FORMAT=basic \

0 commit comments

Comments
 (0)