mirror of
https://github.com/n8n-io/n8n.git
synced 2026-05-12 16:10:30 +02:00
fix(core)!: Switch to image extension for n8nio/runners (#22079)
This commit is contained in:
parent
e569750e32
commit
3d3e8ccf1d
|
|
@ -11,15 +11,6 @@ WORKDIR /app/task-runner-javascript
|
|||
|
||||
RUN corepack enable pnpm
|
||||
|
||||
# Install extra runtime-only npm packages. Allow usage in the Code node via
|
||||
# 'NODE_FUNCTION_ALLOW_EXTERNAL' env variable on n8n-task-runners.json.
|
||||
RUN rm -f node_modules/.modules.yaml
|
||||
RUN mv package.json package.json.bak
|
||||
COPY docker/images/runners/package.json /app/task-runner-javascript/package.json
|
||||
RUN pnpm install --prod --no-lockfile --silent
|
||||
RUN mv package.json extras.json
|
||||
RUN mv package.json.bak package.json
|
||||
|
||||
# Remove `catalog` and `workspace` references from package.json to allow `pnpm add` in extended images
|
||||
RUN node -e "const pkg = require('./package.json'); \
|
||||
Object.keys(pkg.dependencies || {}).forEach(k => { \
|
||||
|
|
@ -79,11 +70,6 @@ RUN uv sync \
|
|||
--all-extras \
|
||||
--no-editable
|
||||
|
||||
# Install extra runtime-only Python packages. Allow usage in the Code node via
|
||||
# 'N8N_RUNNERS_EXTERNAL_ALLOW' env variable on n8n-task-runners.json.
|
||||
COPY docker/images/runners/extras.txt /app/task-runner-python/extras.txt
|
||||
RUN uv pip install -r /app/task-runner-python/extras.txt
|
||||
|
||||
# ==============================================================================
|
||||
# STAGE 3: Task Runner Launcher download
|
||||
# ==============================================================================
|
||||
|
|
|
|||
|
|
@ -26,14 +26,24 @@ WORKDIR /app/task-runner-javascript
|
|||
|
||||
RUN corepack enable pnpm
|
||||
|
||||
# Install extra runtime-only npm packages. Allow usage in the Code node via
|
||||
# 'NODE_FUNCTION_ALLOW_EXTERNAL' env variable on n8n-task-runners.json.
|
||||
RUN rm -f node_modules/.modules.yaml
|
||||
RUN mv package.json package.json.bak
|
||||
COPY docker/images/runners/package.json /app/task-runner-javascript/package.json
|
||||
RUN pnpm install --prod --no-lockfile --silent
|
||||
RUN mv package.json extras.json
|
||||
RUN mv package.json.bak package.json
|
||||
# Remove `catalog` and `workspace` references from package.json to allow `pnpm add`
|
||||
RUN node -e "const pkg = require('./package.json'); \
|
||||
Object.keys(pkg.dependencies || {}).forEach(k => { \
|
||||
const val = pkg.dependencies[k]; \
|
||||
if (val === 'catalog:' || val.startsWith('catalog:') || val.startsWith('workspace:')) \
|
||||
delete pkg.dependencies[k]; \
|
||||
}); \
|
||||
Object.keys(pkg.devDependencies || {}).forEach(k => { \
|
||||
const val = pkg.devDependencies[k]; \
|
||||
if (val === 'catalog:' || val.startsWith('catalog:') || val.startsWith('workspace:')) \
|
||||
delete pkg.devDependencies[k]; \
|
||||
}); \
|
||||
delete pkg.devDependencies; \
|
||||
require('fs').writeFileSync('./package.json', JSON.stringify(pkg, null, 2));"
|
||||
|
||||
# Install moment by default (special case for n8n cloud)
|
||||
RUN rm -f node_modules/.modules.yaml && \
|
||||
pnpm add moment@2.30.1 --prod --no-lockfile
|
||||
|
||||
# ==============================================================================
|
||||
# STAGE 2: Python runner build (@n8n/task-runner-python) with uv
|
||||
|
|
@ -81,11 +91,6 @@ RUN uv sync \
|
|||
--all-extras \
|
||||
--no-editable
|
||||
|
||||
# Install extra runtime-only Python packages. Allow usage in the Code node via
|
||||
# 'N8N_RUNNERS_EXTERNAL_ALLOW' env variable on n8n-task-runners.json.
|
||||
COPY docker/images/runners/extras.txt /app/task-runner-python/extras.txt
|
||||
RUN uv pip install -r /app/task-runner-python/extras.txt
|
||||
|
||||
# ==============================================================================
|
||||
# STAGE 3: Task Runner Launcher download
|
||||
# ==============================================================================
|
||||
|
|
|
|||
|
|
@ -1,5 +0,0 @@
|
|||
# Runtime-only extra Requirements File for installing dependencies in the Python task runner image.
|
||||
# Installed at Docker image build time. Allow usage in the Code node
|
||||
# via 'N8N_RUNNERS_EXTERNAL_ALLOW' env variable on n8n-task-runners.json.
|
||||
|
||||
# numpy==2.3.2
|
||||
|
|
@ -1,8 +0,0 @@
|
|||
{
|
||||
"name": "task-runner-runtime-extras",
|
||||
"description": "Runtime-only extra dependencies for installing packages in the JavaScript task runner image. Installed at Docker image build time. Allow usage in the Code node via 'NODE_FUNCTION_ALLOW_EXTERNAL' env variable on n8n-task-runners.json.",
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"moment": "2.30.1"
|
||||
}
|
||||
}
|
||||
|
|
@ -2,6 +2,16 @@
|
|||
|
||||
This list shows all the versions which include breaking changes and how to upgrade.
|
||||
|
||||
# 1.122.0
|
||||
|
||||
### What changed?
|
||||
|
||||
The way to add third-party dependencies to the `n8nio/runners` image has changed. More details [here](https://docs.n8n.io/hosting/configuration/task-runners/#adding-extra-dependencies).
|
||||
|
||||
### When is action necessary?
|
||||
|
||||
If you adding third-party dependencies to the `n8nio/runners` image using `package.json` and `extras.txt` and building the image yourself, please extend the image as instructed in the link above.
|
||||
|
||||
# 1.113.0
|
||||
|
||||
### What changed?
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user