diff --git a/src/App/Dockerfile b/src/App/Dockerfile index fe2384c95..ece1296ec 100644 --- a/src/App/Dockerfile +++ b/src/App/Dockerfile @@ -1,7 +1,7 @@ # Multi-stage Dockerfile for React frontend with Python backend support using UV # Stage 1: Node build environment for React -FROM node:20-alpine AS frontend-builder +FROM node:24-alpine AS frontend-builder WORKDIR /app/frontend @@ -52,8 +52,9 @@ ENV NODE_ENV=production \ PYTHONDONTWRITEBYTECODE=1 \ PYTHONUNBUFFERED=1 -# Install curl for healthcheck +# Apply OS security patches (e.g. libbrotli1) and install curl for healthcheck RUN apt-get update && \ + apt-get upgrade -y && \ apt-get install -y --no-install-recommends curl && \ apt-get clean && \ rm -rf /var/lib/apt/lists/* diff --git a/src/App/package-lock.json b/src/App/package-lock.json index 5fb83e33d..c15f219d9 100644 --- a/src/App/package-lock.json +++ b/src/App/package-lock.json @@ -17,7 +17,7 @@ "@testing-library/react": "^16.3.0", "@testing-library/user-event": "^13.5.0", "@types/jest": "^27.5.2", - "@types/node": "^16.18.126", + "@types/node": "^24.0.0", "@types/react": "^18.3.23", "@types/react-dom": "^18.3.7", "react": "^18.3.1", @@ -30,7 +30,7 @@ "web-vitals": "^2.1.4" }, "devDependencies": { - "@types/node": "^20.0.0", + "@types/node": "^24.0.0", "@typescript-eslint/eslint-plugin": "^5.62.0", "@typescript-eslint/parser": "^5.62.0", "@vitejs/plugin-react": "^4.5.1", @@ -3417,13 +3417,13 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "20.19.43", - "resolved": "https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@types/node/-/node-20.19.43.tgz", - "integrity": "sha1-/Oz1gLpCoNtVz0BMNyyXlzw3bJc=", + "version": "24.19.2", + "resolved": "https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@types/node/-/node-24.19.2.tgz", + "integrity": "sha512-93d49wCWJkCyN87MxLpNN6KXPCwFw7bVUg79mGUV1OS40JGWwVCr8n61DXCSqz7CV6/VfPkb7xec7uP2M+QHWQ==", "dev": true, "license": "MIT", "dependencies": { - "undici-types": "~6.21.0" + "undici-types": ">=7.24.0 <7.24.7" } }, "node_modules/@types/prop-types": { @@ -9667,9 +9667,9 @@ } }, "node_modules/undici-types": { - "version": "6.21.0", - "resolved": "https://ms-feed-12.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/undici-types/-/undici-types-6.21.0.tgz", - "integrity": "sha1-aR0ArzkJvpOn+qE75hs6W1DvEss=", + "version": "7.24.6", + "resolved": "https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/undici-types/-/undici-types-7.24.6.tgz", + "integrity": "sha1-YSdbSF1/1OnSacfPBOwoc8nMD5E=", "dev": true, "license": "MIT" }, diff --git a/src/App/package.json b/src/App/package.json index bd2600c3e..5905121da 100644 --- a/src/App/package.json +++ b/src/App/package.json @@ -13,7 +13,7 @@ "@testing-library/react": "^16.3.0", "@testing-library/user-event": "^13.5.0", "@types/jest": "^27.5.2", - "@types/node": "^16.18.126", + "@types/node": "^24.0.0", "@types/react": "^18.3.23", "@types/react-dom": "^18.3.7", "react": "^18.3.1", @@ -57,7 +57,7 @@ ] }, "devDependencies": { - "@types/node": "^20.0.0", + "@types/node": "^24.0.0", "@typescript-eslint/eslint-plugin": "^5.62.0", "@typescript-eslint/parser": "^5.62.0", "@vitejs/plugin-react": "^4.5.1", diff --git a/src/mcp_server/Dockerfile b/src/mcp_server/Dockerfile index 00fb819e8..f67f75d7a 100644 --- a/src/mcp_server/Dockerfile +++ b/src/mcp_server/Dockerfile @@ -27,8 +27,8 @@ RUN uv sync --frozen --no-dev # Final stage FROM base -# Install curl for healthcheck -RUN apt-get update && apt-get install -y --no-install-recommends curl && rm -rf /var/lib/apt/lists/* +# Apply OS security patches (e.g. libbrotli1) and install curl for healthcheck +RUN apt-get update && apt-get upgrade -y && apt-get install -y --no-install-recommends curl && rm -rf /var/lib/apt/lists/* WORKDIR /app COPY --from=builder /app /app