FROM n8nio/n8n:latest # 1. 切换 root 修权限 (老样子,这步是必须的) USER root RUN mkdir -p /home/node/.n8n && \ chown -R node:node /home/node/.n8n && \ chmod -R 777 /home/node/.n8n # 2. 切换回 node 用户 USER node # 3. 强制设置端口 ENV N8N_PORT=7860 EXPOSE 7860 # 4. 【核心修复】重置 Entrypoint # 这一步告诉 Docker:不要用官方镜像自带的那个脚本了,听我的! ENTRYPOINT [] # 5. 【核心修复】使用 Shell 模式启动 # 加上 /bin/sh -c 可以强制加载环境变量,保证一定能找到 "n8n" 命令 CMD ["/bin/sh", "-c", "n8n start"]