You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

部署带AdminJS面板的Node.js应用至Google Cloud遇只读文件系统错误

解决AdminJS部署到Google Cloud App Engine的只读文件系统错误

问题原因

Google Cloud App Engine的应用根目录是只读文件系统,AdminJS默认会在项目根目录生成.adminjs/.entry.js文件(用于打包自定义组件,比如你配置的dashboard),尝试写入只读目录就会触发EROFS错误。

解决方案

通过配置AdminJS的bundleDirectory选项,将生成的临时文件指向GAE唯一可写的/tmp目录:

修改AdminJS初始化代码

const admin = new AdminJS({
    databases: [],
    // rootPath是浏览器访问AdminJS的路径,比如'/admin',不是文件路径
    rootPath: '/admin',
    resources:[UsersResources, GuestResources, SalesResources, FinancesResources, TicketsResources, DestinationsResources, JadrolinijaTokenResources],
    dashboard:{
        component: AdminJS.bundle(path.join(process.cwd(), './components/dashboard'))
    },
    // 关键配置:指定打包文件输出到/tmp下的.adminjs目录
    bundleDirectory: path.join('/tmp', '.adminjs')
})

额外注意事项

  • 确保自定义组件路径正确,path.join(process.cwd(), './components/dashboard')能准确定位到组件文件
  • GAE的/tmp目录是临时存储,实例重启时会被清空,但AdminJS会在启动时重新生成.entry.js文件,不影响正常使用

内容的提问来源于stack exchange,提问作者Josip Marić

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 15:22:01