From 23d12b4808ca6db847f6749a80689a0819ff64de Mon Sep 17 00:00:00 2001 From: czlonkowski <56956555+czlonkowski@users.noreply.github.com> Date: Mon, 28 Jul 2025 09:23:23 +0200 Subject: [PATCH] chore: upgrade Docker base images to Node.js 22 LTS Alpine (v2.7.22) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Updated all Dockerfiles from node:20-alpine to node:22-alpine - Addresses known vulnerabilities in older Alpine images - Provides better long-term support with Node.js 22 LTS (until April 2027) - Updated documentation to reflect new base image version - Tested and verified compatibility with all dependencies 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- Dockerfile | 4 ++-- Dockerfile.railway | 4 ++-- Dockerfile.test | 2 +- README.md | 2 +- data/nodes.db | Bin 26591232 -> 26591232 bytes docker-compose.extract.yml | 2 +- docs/CHANGELOG.md | 18 ++++++++++++++++++ docs/DOCKER_README.md | 2 +- package.json | 2 +- package.runtime.json | 2 +- 10 files changed, 28 insertions(+), 10 deletions(-) diff --git a/Dockerfile b/Dockerfile index 4a42263..4edb1a7 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,7 +2,7 @@ # Ultra-optimized Dockerfile - minimal runtime dependencies (no n8n packages) # Stage 1: Builder (TypeScript compilation only) -FROM node:20-alpine AS builder +FROM node:22-alpine AS builder WORKDIR /app # Copy tsconfig for TypeScript compilation @@ -22,7 +22,7 @@ COPY src ./src RUN npx tsc # Stage 2: Runtime (minimal dependencies) -FROM node:20-alpine AS runtime +FROM node:22-alpine AS runtime WORKDIR /app # Install only essential runtime tools diff --git a/Dockerfile.railway b/Dockerfile.railway index 1b498e2..76b31fc 100644 --- a/Dockerfile.railway +++ b/Dockerfile.railway @@ -2,7 +2,7 @@ # Railway-compatible Dockerfile for n8n-mcp # --- Stage 1: Builder --- -FROM node:20-alpine AS builder +FROM node:22-alpine AS builder WORKDIR /app # Install system dependencies for native modules @@ -22,7 +22,7 @@ COPY src ./src RUN npm run build # --- Stage 2: Runtime --- -FROM node:20-alpine AS runtime +FROM node:22-alpine AS runtime WORKDIR /app # Install system dependencies diff --git a/Dockerfile.test b/Dockerfile.test index d339222..156bd9a 100644 --- a/Dockerfile.test +++ b/Dockerfile.test @@ -1,5 +1,5 @@ # Quick test Dockerfile using pre-built files -FROM node:20-alpine +FROM node:22-alpine WORKDIR /app diff --git a/README.md b/README.md index abb22dc..6165d30 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![GitHub stars](https://img.shields.io/github/stars/czlonkowski/n8n-mcp?style=social)](https://github.com/czlonkowski/n8n-mcp) -[![Version](https://img.shields.io/badge/version-2.7.21-blue.svg)](https://github.com/czlonkowski/n8n-mcp) +[![Version](https://img.shields.io/badge/version-2.7.22-blue.svg)](https://github.com/czlonkowski/n8n-mcp) [![npm version](https://img.shields.io/npm/v/n8n-mcp.svg)](https://www.npmjs.com/package/n8n-mcp) [![n8n version](https://img.shields.io/badge/n8n-v1.103.2-orange.svg)](https://github.com/n8n-io/n8n) [![Docker](https://img.shields.io/badge/docker-ghcr.io%2Fczlonkowski%2Fn8n--mcp-green.svg)](https://github.com/czlonkowski/n8n-mcp/pkgs/container/n8n-mcp) diff --git a/data/nodes.db b/data/nodes.db index ff5e34a8483146f0c3904e4604671532bc92bd19..c5551fef61ce7b8953a8e3400789945bf2eb304e 100644 GIT binary patch delta 1923 zcmajgXK)o|7{&43doL{sBmqKh2qd9*5<>4CLhrrgqyRUx1QL1+^DhJl7bhQWpu!w|zz z!!W~e!wADj!zjaO!x+O@!#Klu!vw=b!z9CG!xY0*!!*Nm!wkbrL#l!AC(V#<$S`CY zW*KH1<{U!cT$;yUQ4*ICh%K3r9vJWOmuulKIguWi;_)BVBGcn9`){~EBar3sAGx+D zh|dgA7R{x3G@lmGLdvEbT11N}m-1){Ev03&oL10ET1BgA4Xvehluzqv18t;DWVD$I zXbWwnZM2<&w1ak1Ar(qN2rXBQaM%7F*;5s=s9|x zPSOkXBE3W}(<^j}UZvOQbvjLN(3^CI-lDhZ9XdZ|Nd^N8i&W`hk9=pXg`0Oux{t^c!8F-{}v!N`KN{^f&#pJwDSd zB*mk66`xW`sjO5{sw&l#5G7OzQ>rU9lyD_NiBxJTwUpXQlu}2DR{TngQdfyp>M8Y= zI3-?5P#P!=l}1WqrHRs1X{Iz+S|}}*R!VE7jnY<0RFaf-O0v>k>7aB}Iw_r%E=pIW zo6=qBq4ZRGDZQ0GN?)a)(q9>%3{(awgOwCzh%!_erVLj`C?l0o%4lVbGFBOxrT4xfpRcMD;W*(}!!MOZ zCc4pKhZ9aGpYleBgm|60{L$&~x?U$NL{|~l_gwJqOGxl}{&%$Jq_6U|CtSXM?-_4c ts5jPKI%{!mR`x<)Fz5z%xWS!nu+R+_xxr#LxXTUhc7uD|gL~bIe*q-jt0Vvb delta 1899 zcmXBScU%=z7{>8?uDDS^xr(BITLkysd+)tapUcpzA|l{kI9?Z5a8qf~p0=~7)az(Z z8|J8NZ!>IKIeH%Z|+5)2It4GoP9jSWo$l zdW;^YC+JCfik_xt=ny?i&rvBoPcP7mbeN9NQ3}y9I!-6(B)vp0(<}5Uy+*Io8}uf< zMQ_tP^e&yE_vn54fIg(t^bwt*vviKm)5r7)eM%STGy0sqpfBkw`kKC>Z|OVwo_?So z=_k5KKhq`ph05qM{Yt;l@AL=#Nq^B5`kVftf9Wb+qw92|AU@p{k>XX#DPc-^rGipX zsiag^swh>JaHX13U5QX4l_;f#Qd5amd`c~)wi2V%QR*tON3m$xW^sb>yG^g DabdL2 diff --git a/docker-compose.extract.yml b/docker-compose.extract.yml index 7f10d76..6a37767 100644 --- a/docker-compose.extract.yml +++ b/docker-compose.extract.yml @@ -24,7 +24,7 @@ services: # Extractor service that will read from the mounted volumes node-extractor: - image: node:18-alpine + image: node:22-alpine container_name: n8n-node-extractor working_dir: /app depends_on: diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index 0736ce7..49f2e1c 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -5,6 +5,21 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [2.7.22] - 2025-07-28 + +### Security +- **Docker base images**: Updated from Node.js 20 Alpine to Node.js 22 LTS Alpine + - Addresses known vulnerabilities in older Alpine images + - Provides better long-term support with Node.js 22 LTS (supported until April 2027) + - All Dockerfiles updated: `Dockerfile`, `Dockerfile.railway`, `Dockerfile.test` + - Docker Compose extractor service updated to use Node.js 22 + - Documentation updated to reflect new base image version + +### Compatibility +- Tested and verified compatibility with Node.js 22 LTS +- All dependencies work correctly with the new Node.js version +- Docker builds complete successfully with improved security posture + ## [2.7.21] - 2025-07-23 ### Updated @@ -759,6 +774,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Basic n8n and MCP integration - Core workflow automation features +[2.7.22]: https://github.com/czlonkowski/n8n-mcp/compare/v2.7.21...v2.7.22 +[2.7.21]: https://github.com/czlonkowski/n8n-mcp/compare/v2.7.20...v2.7.21 +[2.7.20]: https://github.com/czlonkowski/n8n-mcp/compare/v2.7.19...v2.7.20 [2.7.19]: https://github.com/czlonkowski/n8n-mcp/compare/v2.7.18...v2.7.19 [2.7.18]: https://github.com/czlonkowski/n8n-mcp/compare/v2.7.17...v2.7.18 [2.7.17]: https://github.com/czlonkowski/n8n-mcp/compare/v2.7.16...v2.7.17 diff --git a/docs/DOCKER_README.md b/docs/DOCKER_README.md index 4ef3f49..d7adbaf 100644 --- a/docs/DOCKER_README.md +++ b/docs/DOCKER_README.md @@ -482,7 +482,7 @@ secrets: ### Image Details -- Base: `node:20-alpine` +- Base: `node:22-alpine` - Size: ~280MB compressed - Features: Pre-built database with all node information - Database: Complete SQLite with 525+ nodes diff --git a/package.json b/package.json index d330f11..ce6a6fc 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "n8n-mcp", - "version": "2.7.21", + "version": "2.7.22", "description": "Integration between n8n workflow automation and Model Context Protocol (MCP)", "main": "dist/index.js", "bin": { diff --git a/package.runtime.json b/package.runtime.json index 69718e1..ab3c85d 100644 --- a/package.runtime.json +++ b/package.runtime.json @@ -1,6 +1,6 @@ { "name": "n8n-mcp-runtime", - "version": "2.7.21", + "version": "2.7.22", "description": "n8n MCP Server Runtime Dependencies Only", "private": true, "dependencies": {