简体   繁体   中英

Issue with Ibmmq docker container run

Context : I have been running the NodeJS app with ibmmq as an npm package. This service consumes msg with the help of ibmmq package. For running this app, I had built below docker file.

STAGE1: BUILD
FROM node:16.13.2-bullseye-slim AS base

WORKDIR /app

COPY package*.json ./
COPY tsconfig.json ./
COPY src ./src

RUN echo $(ls -1 ./)
RUN echo $(ls -1 ./src)=
RUN apt-get update && apt-get install --yes curl g++ make git python3
RUN npm install

RUN npm run app-build
COPY . .

STAGE2: RELEASE

FROM node:16.13.2-bullseye-slim AS release

WORKDIR /app

COPY --from=base /app/build/src ./src
COPY --from=base /app/node_modules ./node_modules
COPY --from=base /app/package*.json ./
COPY --from=base /app/tsconfig.json ./

CMD node src/index.js

The above docker image with the container was running perfectly, for the past 6 months. Now it's been giving errors while running the image in the docker container. PFB the error.

container is backing off waiting to restart
-dev:pod/---5dbc6cd9c8-x48tj: container is backing off waiting to restart
[ -5dbc6cd9c8-x48tj ] Cannot find MQ C library.
[ -5dbc6cd9c8-x48tj ] Has the C client been installed?
[ -5dbc6cd9c8-x48tj ] Have you run setmqenv?
failed. Error: container is backing off waiting to restart.

PFB the lib versions:

"node_modules/ibmmq": { "version": "0.9.18", "hasInstallScript": true, "license": "Apache-2.0", "dependencies": { "ffi-napi": ">=4.0.3", "ref-array-di": ">=1.2.2", "ref-napi": "^3.0.3", "ref-struct-di": ">=1.1.1", "unzipper": ">=0.10.11" }

Please help me here, since 2-3 days I have been trying with multiple images and all are failing now. I have also raised an issue on Github.

Thanks in advance.

Version 0.9.18 of the ibmmq package is about a year old. It had a default version of the MQ C client library to use of 9.2.3.0. IBM removes out-of-support versions of the Redist client from its download site, and with the recent release of 9.3.0, that site got cleaned up about a week ago. So the automatic download of the C package would now fail with that level of the Node package.

If you want to continue to use a particular version of the MQ client past its support lifetime then you need to keep a local copy of the tar file ready to install in your container, and put it in there yourself. And then tell the npm install process not to try to download during the postinstall phase.

The ibmmq package has this documented in its README

I would have expected the npm install to have reported a download error but newer versions of npm seem to have stopped printing useful information during installation by default.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM