FROM ubuntu:20.04 | |
# 安装基础依赖 | |
RUN apt-get update && apt-get install -y curl ca-certificates openssl | |
# 创建非 root 用户并设置主目录 | |
RUN useradd -m -d /home/node -s /bin/bash node | |
# 安装 Node.js 18.x | |
RUN curl -fsSL https://deb.nodesource.com/setup_18.x | bash - && \ | |
apt-get install -y nodejs | |
# 全局安装 n8n(指定旧版本兼容 --port 参数,或使用新版本环境变量) | |
# 方案1: 使用新版 + 环境变量(推荐) | |
RUN npm install -g n8n | |
# 方案2: 回退到支持 --port 的旧版本(不推荐) | |
# RUN npm install -g [email protected] | |
# 修复权限:创建必要目录并赋权 | |
RUN mkdir -p /home/node/.n8n /data && \ | |
chown -R node:node /home/node/.n8n /data | |
# 切换到非 root 用户 | |
USER node | |
ENV HOME=/home/node | |
WORKDIR $HOME/app | |
# 设置环境变量(新版本必须通过环境变量配置) | |
ENV N8N_PORT=7860 | |
ENV N8N_HOST=0.0.0.0 | |
# 暴露端口 | |
EXPOSE 7860 | |
# 启动命令(不再需要 --port 参数) | |
CMD ["n8n", "start"] |