diff --git a/CHANGELOG.md b/CHANGELOG.md index 3061a3d..6f838c5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,7 @@ ## 9.3.0.0 (2022-03-29) * Updated to MQ version 9.3.0.0 +* Use `registry.access.redhat.com` instead of `registry.redhat.io`, so that you don't need to login with a Red Hat account. ## 9.2.5.0 (2021-12-06) diff --git a/Dockerfile-server b/Dockerfile-server index e9ae8c7..f8f451b 100644 --- a/Dockerfile-server +++ b/Dockerfile-server @@ -1,4 +1,4 @@ -# © Copyright IBM Corporation 2015, 2021 +# © Copyright IBM Corporation 2015, 2022 # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -12,9 +12,9 @@ # See the License for the specific language governing permissions and # limitations under the License. -ARG BASE_IMAGE=registry.redhat.io/ubi8/ubi-minimal +ARG BASE_IMAGE=registry.access.redhat.com/ubi8/ubi-minimal ARG BASE_TAG=8.5-240.1648458092 -ARG BUILDER_IMAGE=registry.redhat.io/ubi8/go-toolset +ARG BUILDER_IMAGE=registry.access.redhat.com/ubi8/go-toolset ARG BUILDER_TAG=1.16.12-7 ARG GO_WORKDIR=/opt/app-root/src/go/src/github.com/ibm-messaging/mq-container ARG MQ_URL="https://public.dhe.ibm.com/ibmdl/export/pub/software/websphere/messaging/mqadv/9.3.0.0-IBM-MQ-Advanced-for-Developers-Non-Install-LinuxX64.tar.gz" @@ -123,13 +123,14 @@ ENTRYPOINT ["runmqserver"] ############################################################################### # Build stage to build C code for custom authorization service (developer-only) ############################################################################### -FROM registry.redhat.io/rhel8/gcc-toolset-9-toolchain as cbuilder +# User the Go toolset image, which already includes gcc +FROM $BUILDER_IMAGE:$BUILDER_TAG as cbuilder # The URL to download the MQ installer from in tar.gz format # This assumes an archive containing the MQ Non-Install packages ARG MQ_URL USER 0 # Install the Apache Portable Runtime code (used for htpasswd hash checking) -RUN yum -y install apr-devel apr-util-openssl apr-util-devel +RUN yum --assumeyes --disableplugin=subscription-manager install apr-devel apr-util-openssl apr-util-devel # Install MQ client COPY install-mq.sh /usr/local/bin/ RUN mkdir /opt/mqm \ diff --git a/Makefile b/Makefile index 72990a1..a5f73c6 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -# © Copyright IBM Corporation 2017, 2021 +# © Copyright IBM Corporation 2017, 2022 # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -59,10 +59,6 @@ MQ_DELIVERY_REGISTRY_NAMESPACE ?= MQ_DELIVERY_REGISTRY_USER ?= # MQ_DELIVERY_REGISTRY_CREDENTIAL is the password/API key for the remote registry (if required) MQ_DELIVERY_REGISTRY_CREDENTIAL ?= -# REGISTRY_USER is the username used to login to the Red Hat registry -REGISTRY_USER ?= -# REGISTRY_PASS is the password used to login to the Red Hat registry -REGISTRY_PASS ?= # ARCH is the platform architecture (e.g. amd64, ppc64le or s390x) ARCH ?= $(if $(findstring x86_64,$(shell uname -m)),amd64,$(shell uname -m)) # LTS is a boolean value to enable/disable LTS container build @@ -269,7 +265,7 @@ test-advancedserver: test/docker/vendor cd test/docker && TEST_IMAGE=$(MQ_IMAGE_ADVANCEDSERVER):$(MQ_TAG) EXPECTED_LICENSE=Production go test -parallel $(NUM_CPU) -timeout $(TEST_TIMEOUT_DOCKER) $(TEST_OPTS_DOCKER) .PHONY: build-devjmstest -build-devjmstest: registry-login +build-devjmstest: $(info $(SPACER)$(shell printf $(TITLE)"Build JMS tests for developer config"$(END))) cd test/messaging && docker build --tag $(DEV_JMS_IMAGE) . @@ -309,7 +305,7 @@ test-advancedserver-cover: test/docker/vendor coverage # Build an MQ image. The commands used are slightly different between Docker and Podman define build-mq $(if $(findstring docker,$(COMMAND)), @docker network create build,) - $(if $(findstring docker,$(COMMAND)), @docker run --rm --name $(BUILD_SERVER_CONTAINER) --network build --network-alias build --volume $(DOWNLOADS_DIR):/opt/app-root/src$(VOLUME_MOUNT_OPTIONS) --detach registry.redhat.io/ubi8/nginx-118 nginx -g "daemon off;",) + $(if $(findstring docker,$(COMMAND)), @docker run --rm --name $(BUILD_SERVER_CONTAINER) --network build --network-alias build --volume $(DOWNLOADS_DIR):/opt/app-root/src$(VOLUME_MOUNT_OPTIONS) --detach registry.access.redhat.com/ubi8/nginx-118 nginx -g "daemon off;",) $(eval EXTRA_ARGS=$(if $(findstring docker,$(COMMAND)), --network build --build-arg MQ_URL=http://build:8080/$4, --volume $(DOWNLOADS_DIR):/var/downloads$(VOLUME_MOUNT_OPTIONS) --build-arg MQ_URL=file:///var/downloads/$4)) # Build the new image $(COMMAND) build \ @@ -352,7 +348,7 @@ endif build-advancedserver-host: build-advancedserver .PHONY: build-advancedserver -build-advancedserver: registry-login log-build-env downloads/$(MQ_ARCHIVE) command-version +build-advancedserver: log-build-env downloads/$(MQ_ARCHIVE) command-version $(info $(SPACER)$(shell printf $(TITLE)"Build $(MQ_IMAGE_ADVANCEDSERVER):$(MQ_TAG)"$(END))) $(call build-mq,$(MQ_IMAGE_ADVANCEDSERVER),$(MQ_TAG),Dockerfile-server,$(MQ_ARCHIVE),mq-server) @@ -360,29 +356,23 @@ build-advancedserver: registry-login log-build-env downloads/$(MQ_ARCHIVE) comma build-devserver-host: build-devserver .PHONY: build-devserver -build-devserver: registry-login log-build-env downloads/$(MQ_ARCHIVE_DEV) command-version +build-devserver: log-build-env downloads/$(MQ_ARCHIVE_DEV) command-version $(info $(shell printf $(TITLE)"Build $(MQ_IMAGE_DEVSERVER):$(MQ_TAG)"$(END))) $(call build-mq,$(MQ_IMAGE_DEVSERVER),$(MQ_TAG),Dockerfile-server,$(MQ_ARCHIVE_DEV),mq-dev-server) .PHONY: build-advancedserver-cover -build-advancedserver-cover: registry-login command-version +build-advancedserver-cover: command-version $(COMMAND) build --build-arg BASE_IMAGE=$(MQ_IMAGE_ADVANCEDSERVER):$(MQ_TAG) -t $(MQ_IMAGE_ADVANCEDSERVER):$(MQ_TAG)-cover -f Dockerfile-server.cover . .PHONY: build-explorer -build-explorer: registry-login downloads/$(MQ_ARCHIVE_DEV) +build-explorer: downloads/$(MQ_ARCHIVE_DEV) $(call build-mq,mq-explorer,latest-$(ARCH),incubating/mq-explorer/Dockerfile,$(MQ_ARCHIVE_DEV),mq-explorer) .PHONY: build-sdk -build-sdk: registry-login downloads/$(MQ_ARCHIVE_DEV) +build-sdk: downloads/$(MQ_ARCHIVE_DEV) $(info $(shell printf $(TITLE)"Build $(MQ_IMAGE_SDK)"$(END))) $(call build-mq,mq-sdk,$(MQ_TAG),incubating/mq-sdk/Dockerfile,$(MQ_SDK_ARCHIVE),mq-sdk) -.PHONY: registry-login -registry-login: -ifneq ($(REGISTRY_USER),) - $(COMMAND) login -u $(REGISTRY_USER) -p $(REGISTRY_PASS) registry.redhat.io -endif - .PHONY: log-build-env log-build-vars: $(info $(SPACER)$(shell printf $(TITLE)"Build environment"$(END))) @@ -393,7 +383,6 @@ log-build-vars: @echo MQ_IMAGE_DEVSERVER=$(MQ_IMAGE_DEVSERVER) @echo MQ_IMAGE_ADVANCEDSERVER=$(MQ_IMAGE_ADVANCEDSERVER) @echo COMMAND=$(COMMAND) - @echo REGISTRY_USER=$(REGISTRY_USER) .PHONY: log-build-env log-build-env: log-build-vars diff --git a/docs/building.md b/docs/building.md index ec8f89f..70dfcc1 100644 --- a/docs/building.md +++ b/docs/building.md @@ -9,8 +9,6 @@ You need to have the following tools installed: If you are working in the Windows Subsystem for Linux, follow [this guide by Microsoft to set up Docker](https://blogs.msdn.microsoft.com/commandline/2017/12/08/cross-post-wsl-interoperability-with-docker/) first. -You will also need a [Red Hat Account](https://access.redhat.com) to be able to access the Red Hat Registry. - ## Building a production image From MQ 9.2.X, the MQ container adds support for MQ Long Term Support (LTS) **production licensed** releases. @@ -21,8 +19,7 @@ This procedure works for building the MQ Continuous Delivery release, on `amd64` 1. Create a `downloads` directory in the root of this repository 2. Download MQ from [IBM Passport Advantage](https://www.ibm.com/software/passportadvantage/) or [IBM Fix Central](https://www.ibm.com/support/fixcentral), and place the downloaded file (for example, `IBM_MQ_9.3.0_LINUX_X86-64_NOINST.tar.gz`) in the `downloads` directory -3. Login to the Red Hat Registry: `docker login registry.redhat.io` using your Customer Portal credentials. -4. Run `make build-advancedserver` +3. Run `make build-advancedserver` > **Warning**: Note that from MQ 9.2.X CD, the MQ container build uses a 'No-Install' MQ Package, available under `IBM MQ V9.2.x Continuous Delivery Release components eAssembly, part no. CJ7CNML` @@ -38,8 +35,7 @@ This procedure works for building the MQ Long Term Support release, on `amd64`, 1. Create a `downloads` directory in the root of this repository 2. Download MQ from [IBM Passport Advantage](https://www.ibm.com/software/passportadvantage/) or [IBM Fix Central](https://www.ibm.com/support/fixcentral), and place the downloaded file (for example, `9.2.0.4-IBM-MQ-Advanced-Non-Install-LinuxX86.tar.gz`) in the `downloads` directory -3. Login to the Red Hat Registry: `docker login registry.redhat.io` using your Customer Portal credentials. -4. Run `LTS=true make build-advancedserver` +3. Run `LTS=true make build-advancedserver` > **Warning**: Note that from MQ 9.2 LTS, the MQ container build uses a 'No-Install' MQ Package, available under `IBM MQ V9.2 Long Term Support Release components eAssembly, part no. CXXXXXX` @@ -51,7 +47,6 @@ MQ_ARCHIVE=mq-1.2.3.4.tar.gz MQ_VERSION=1.2.3.4 LTS=true make build-advancedserv ## Building a developer image -Login to the Red Hat Registry: `docker login registry.redhat.io` using your Customer Portal credentials. Run `make build-devserver`, which will download the latest version of MQ Advanced for Developers from IBM developerWorks. This is currently only available on the `amd64` architecture. You can use the environment variable `MQ_ARCHIVE_DEV` to specify an alternative local file to install from (which must be in the `downloads` directory). diff --git a/test/messaging/Dockerfile b/test/messaging/Dockerfile index 1b29b0e..21bb612 100644 --- a/test/messaging/Dockerfile +++ b/test/messaging/Dockerfile @@ -1,4 +1,4 @@ -# © Copyright IBM Corporation 2018, 2021 +# © Copyright IBM Corporation 2018, 2022 # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -15,7 +15,7 @@ ############################################################################### # Application build environment (Maven) ############################################################################### -FROM registry.redhat.io/ubi8/openjdk-8 as builder +FROM registry.access.redhat.com/ubi8/openjdk-8 as builder COPY pom.xml . #WORKDIR /usr/src/mymaven # Download dependencies separately, so Docker caches them @@ -31,7 +31,7 @@ RUN find . # Application runtime (JRE only, no build environment) ############################################################################### # OpenJDK is not technically supported with the MQ client, but is good enough for these tests -FROM registry.redhat.io/ubi8/openjdk-8-runtime +FROM registry.access.redhat.com/ubi8/openjdk-8-runtime COPY --from=builder /home/jboss/target/*.jar /opt/app/ COPY --from=builder /home/jboss/target/lib/*.jar /opt/app/ USER 1001