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

Strapi3.6.8 Docker环境已安装cloudinary上传插件仍提示模块缺失如何解决

问题解决方案

核心问题出在Docker本地挂载卷/app:/srv/app覆盖了容器构建阶段安装的依赖,本地node_modules与容器Linux环境的依赖架构不兼容,导致Strapi无法识别已安装的Cloudinary提供包。按以下步骤操作即可解决:

1. 调整Docker挂载规则,排除node_modules目录

修改docker-compose.yml配置(如果使用docker run启动则对应修改启动参数),新增匿名卷避免本地node_modules覆盖容器内的依赖文件:

volumes:
  - ./app:/srv/app
  - /srv/app/node_modules # 新增此行,单独挂载容器内的node_modules

如果是直接使用docker run命令启动,额外添加参数 -v /srv/app/node_modules即可。

2. 清理缓存避免残留问题

  • 删除本地项目目录下的node_modules文件夹、package-lock.json或yarn.lock文件
  • 删除旧的容器、镜像和缓存:
docker-compose down -v
docker system prune -af

注意:如果Docker中还有其他挂载的重要业务数据,不要加-v参数,仅删除本次相关的容器和镜像即可。

3. 重新构建启动容器

docker-compose up --build

可选排查点

如果按上述步骤操作后仍报错,可检查以下配置:

  • 确认config/plugins.js中的上传配置符合Strapi 3.x规范,参考示例:
module.exports = ({ env }) => ({
  upload: {
    provider: 'cloudinary',
    providerOptions: {
      cloud_name: env('CLOUDINARY_NAME'),
      api_key: env('CLOUDINARY_KEY'),
      api_secret: env('CLOUDINARY_SECRET'),
    },
  },
});
  • 确认Dockerfile中使用的包管理器和本地一致,避免npm和yarn混用导致的依赖路径不匹配问题
  • 进入运行中的容器执行npm list strapi-provider-upload-cloudinary,确认依赖确实安装在容器内部的node_modules目录下

内容的提问来源于stack exchange,提问作者James Nobles

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 06:00:04