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

Dockerfile构建报错:npm: not found 问题排查求助

解决Docker构建时npm: not found错误

问题背景

基于php:8.2-fpm构建自定义镜像,安装Laravel、PostgreSQL依赖及Composer、npm时,构建到npm install -g npm步骤报错:/bin/sh: 1: npm: not found,退出码127。

原因分析

  1. NodeSource脚本兼容性问题:原Dockerfile使用的setup_16.x脚本适配旧版Debian系统,而当前php:8.2-fpm镜像基于Debian 12(Bookworm),旧脚本无法正确完成nodejs安装,导致npm未被部署。
  2. PostgreSQL配置路径错误:docker-php-ext-configure pgsql -with-pgsql=/usr/local/pgsql指定的路径与apt安装的PostgreSQL客户端实际路径不匹配,可能干扰后续依赖安装流程。

修正后的Dockerfile

FROM php:8.2-fpm

RUN apt-get update \
    && apt-get install -y gnupg curl wget ca-certificates unzip lsb-release \
    && wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add - \
    && echo "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main" | tee  /etc/apt/sources.list.d/pgdg.list \
    # 改用适配Debian 12的NodeSource长期支持版脚本
    && curl -sL https://deb.nodesource.com/setup_20.x | bash - \
    && apt-get install -y \
        libicu-dev \
        libpq-dev \
        libzip-dev \
        nodejs \
        postgresql-client-15 \
    && pecl install redis \
    && docker-php-ext-enable redis \
    # 使用系统默认PostgreSQL路径,移除错误的自定义路径指定
    && docker-php-ext-configure pgsql \
    && docker-php-ext-install intl pdo pdo_pgsql pgsql zip bcmath pcntl exif \
    && php -r "readfile('http://getcomposer.org/installer');" | php -- --install-dir=/usr/bin/ --filename=composer \
    && npm install -g npm \
    && apt-get -y autoremove \
    && apt-get clean \
    && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* \
    && chown -R www-data:www-data /var/www

WORKDIR /var/www/app
USER www-data

关键修改点

  • 将Node.js安装脚本从setup_16.x替换为setup_20.x,适配Debian 12系统,确保nodejs和npm正常安装。
  • 移除docker-php-ext-configure pgsql中的自定义路径参数,apt安装的PostgreSQL客户端会自动配置好依赖路径。
  • 保持所有命令在同一个RUN层,确保环境变量与依赖的连续性。

验证步骤

  1. 删除旧镜像缓存:docker rmi <目标镜像名>
  2. 重新构建镜像:docker-compose build
  3. 进入容器验证npm状态:docker-compose exec <服务名> npm -v

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 01:54:52