From 6cdc9f9a2b2fe4133b494a864910b82198e47eb4 Mon Sep 17 00:00:00 2001 From: Nawaz Dhandala Date: Wed, 17 Dec 2025 17:46:40 +0000 Subject: [PATCH] refactor: update Dockerfile for Node.js version and improve nodemon configuration --- MCP/Dockerfile.tpl | 40 +++++++++++++++++++++++----------------- MCP/nodemon.json | 21 +++++++++++++++++---- 2 files changed, 40 insertions(+), 21 deletions(-) diff --git a/MCP/Dockerfile.tpl b/MCP/Dockerfile.tpl index f9d653ca61..51816776b0 100644 --- a/MCP/Dockerfile.tpl +++ b/MCP/Dockerfile.tpl @@ -3,7 +3,7 @@ # # Pull base image nodejs image. -FROM public.ecr.aws/docker/library/node:22.3.0 +FROM public.ecr.aws/docker/library/node:24.9-alpine3.21 RUN mkdir /tmp/npm && chmod 2777 /tmp/npm && chown 1000:1000 /tmp/npm && npm config set cache /tmp/npm --global RUN npm config set fetch-retries 5 @@ -22,41 +22,47 @@ ENV PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1 # IF APP_VERSION is not set, set it to 1.0.0 RUN if [ -z "$APP_VERSION" ]; then export APP_VERSION=1.0.0; fi -# Install bash. -RUN apt-get install bash -y && apt-get install curl -y +# Install bash. +RUN apk add bash && apk add curl # Install python -RUN apt-get update && apt-get install -y .gyp python3 make g++ +RUN apk update && apk add --no-cache --virtual .gyp python3 make g++ #Use bash shell by default SHELL ["/bin/bash", "-c"] -RUN npm install typescript -g -USER root - -RUN mkdir -p /usr/src +RUN mkdir /usr/src WORKDIR /usr/src/Common COPY ./Common/package*.json /usr/src/Common/ +# Set version in ./Common/package.json to the APP_VERSION +RUN sed -i "s/\"version\": \".*\"/\"version\": \"$APP_VERSION\"/g" /usr/src/Common/package.json RUN npm install COPY ./Common /usr/src/Common +ENV PRODUCTION=true + WORKDIR /usr/src/app # Install app dependencies COPY ./MCP/package*.json /usr/src/app/ -RUN npm update @oneuptime/common +# Set version in ./MCP/package.json to the APP_VERSION +RUN sed -i "s/\"version\": \".*\"/\"version\": \"$APP_VERSION\"/g" /usr/src/app/package.json RUN npm install -COPY ./MCP /usr/src/app - -# Build the application -RUN npm run build - -# Remove dev dependencies after build -RUN npm prune --production # Expose Port -EXPOSE 3002 +EXPOSE 3405 +{{ if eq .Env.ENVIRONMENT "development" }} +#Run the app +CMD [ "npm", "run", "dev" ] +{{ else }} +# Copy app source +COPY ./MCP /usr/src/app +# Bundle app source +RUN npm run compile +# Set permission to write logs and cache in case container run as non root +RUN chown -R 1000:1000 "/tmp/npm" && chmod -R 2777 "/tmp/npm" #Run the app CMD [ "npm", "start" ] +{{ end }} diff --git a/MCP/nodemon.json b/MCP/nodemon.json index 075e87953d..95b88cd9c2 100644 --- a/MCP/nodemon.json +++ b/MCP/nodemon.json @@ -1,6 +1,19 @@ { - "watch": ["Index.ts"], - "ext": "ts,tsx", - "ignore": ["./node_modules/**", "./public/**", "./bin/**", "./build/**"], - "exec": "npm start" + "watch": ["./","../Common/Server", "../Common/Types", "../Common/Utils", "../Common/Models"], + "ext": "ts,tsx", + "ignore": [ + "./node_modules/**", + "./public/**", + "./bin/**", + "./build/**" + ], + "watchOptions": { + "useFsEvents": false, + "interval": 500 + }, + "env": { + "TS_NODE_TRANSPILE_ONLY": "1", + "TS_NODE_FILES": "false" + }, + "exec": "node -r ts-node/register/transpile-only Index.ts" }