n8n / Dockerfile
geqintan's picture
update
46a8ee4
raw
history blame contribute delete
993 Bytes
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"]