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

Docker构建Strapi遇nginx缺失及npm脚本错误求助

问题解决:Strapi Docker镜像运行时的Nginx与NPM脚本错误

错误信息

: No such file or directoryline 2: /usr/sbin/nginx
npm ERR! missing script: develop


问题1:Nginx找不到

原因

Dockerfile中安装Nginx时使用了未定义的环境变量${NGINX_VERSION},导致安装命令无效,Nginx并未被正确安装到容器中。

修复步骤

  • 添加Nginx版本环境变量:在Dockerfile开头添加ENV NGINX_VERSION 1.24.0(可根据SLES 15的兼容版本调整)
  • 修正安装命令:若不需要指定版本,可直接改为:
    zypper --non-interactive install -y nginx
    
  • 验证Nginx路径:在Dockerfile的Nginx安装步骤末尾添加which nginx命令确认路径,根据输出调整dockerRun.sh中的启动路径
  • 调整Nginx启动方式:修改dockerRun.sh中的命令,避免Nginx后台运行导致容器提前退出:
    /usr/sbin/nginx -g "daemon off;" &
    

问题2:NPM Develop脚本缺失

原因

容器内的package.json未定义develop脚本,或脚本名称不匹配。

修复步骤

  • 检查本地package.json:确保Strapi项目根目录的package.json包含对应脚本:
    "scripts": {
      "develop": "strapi develop",
      "start": "strapi start",
      "build": "strapi build"
    }
    
  • 确认文件复制逻辑:Dockerfile中已执行COPY package.json ./和COPY . .,需确保本地package.json被正确复制到容器/usr/src/app目录
  • 可选启动方式:若不想依赖npm脚本,可直接在dockerRun.sh中使用命令启动:
    npx strapi develop
    

额外Dockerfile修正点

  • 修复仓库地址换行问题:添加COMMON_BASE_OS_SLES_REPO的命令中,仓库地址被拆分,需合并为一行:
    RUN zypper addrepo -C -G -f https://arm.rnd.confidencial.se/artifactory/proj-local/common_base_os/sles/3.37.0-5?ssl_verify=no COMMON_BASE_OS_SLES_REPO && \
    

内容的提问来源于stack exchange,提问作者Nectar Mind

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 08:34:19