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

Docker Compose构建Laravel项目时卡在RUN npm run prod步骤的问题求助

Docker Compose构建Laravel项目时卡在RUN npm run prod步骤的问题求助

我最近在给Laravel项目做Docker化部署,每次执行docker-compose -f docker-compose_Nginx.yml build --no-cache构建镜像时,都会卡在RUN npm run prod这一步,试了好几次都没解决,实在头疼。

以下是执行命令时的输出:

PS C:\Users\Dell\Documents\Studia\Kursy\Kurs PHP-Laravel ZZ\shop-yt>  docker-compose -f docker-compose_Nginx.yml build --no-cache

2023/07/30 17:01:45 http2: server: error reading preface from client //./pipe/docker_engine: file has already been closed

[+] Building 219.3s (20/23)

=> => naming to docker.io/library/shop-yt-nginx                                                                                                                                                                                   0.0s

=> [laravel stage-0  3/10] WORKDIR /var/www/html                                                                                                                                                                                  0.1s

=> [laravel stage-0  4/10] COPY . .                                                                                                                                                                                               0.2s

=> [laravel stage-0  5/10] COPY --from=composer:2.5.8 /usr/bin/composer /usr/bin/composer                                                                                                                                         0.1s

=> [laravel stage-0  6/10] RUN npm install -g n && n 18.16.1                                                                                                                                                                     12.6s

=> [laravel stage-0  7/10] RUN npm install                                                                                                                                                                                        5.6s

=> [laravel stage-0  8/10] RUN npm run prod

下面是我的相关配置文件,麻烦各位帮忙看看哪里出问题了:

Dockerfile_Laravel

FROM php:8.2

RUN apt-get update -y && apt-get install -y \
nodejs \
npm \
curl \
zip \
unzip \
&& docker-php-ext-install pdo pdo_mysql

WORKDIR /var/www/html

COPY . .

COPY --from=composer:2.5.8 /usr/bin/composer /usr/bin/composer

RUN npm install -g n && n 18.16.1

RUN npm install

RUN npm run prod

RUN composer install --no-interaction --no-progress

RUN cd public && ln -sf ../storage/app/public/ storage

ENV PORT=9000

ENTRYPOINT ["docker/nginx/entrypoint.sh"]

Dockerfile_Nginx

FROM nginx:alpine

COPY docker/nginx/vhost.conf /etc/nginx/conf.d/default.conf

ENV PORT=80

docker-compose_Nginx.yml

version: "3.9"

services:
  laravel:
    container_name: shop-yt-app-n
    build:
      context: .
      dockerfile: Dockerfile_Laravel
    ports:
      - 9000:9000
    volumes:
      - shop-yt-volume:/var/www/html/storage
    networks:
      - shop-yt-network
  nginx:
    container_name: shop-yt-nginx
    build:
      context: .
      dockerfile: Dockerfile_Nginx
    ports:
      - 80:80
    networks:
      - shop-yt-network
  database:
    container_name: shop-yt-db
    image: mariadb:latest
    ports:
      - ${DB_PORT}:3306
    environment:
      - MYSQL_DATABASE=${DB_DATABASE}
      - MYSQL_USER=${DB_USERNAME}
      - MYSQL_PASSWORD=${DB_PASSWORD}
      - MYSQL_ROOT_PASSWORD=${DB_PASSWORD}
    volumes:
      - shop-yt-db-volume:/var/lib/mysql
    networks:
      - shop-yt-network

volumes:
  shop-yt-volume:
    driver: local
  shop-yt-db-volume:
    driver: local

networks:
  shop-yt-network:
    driver: bridge

entrypoint.sh

#!/bin/bash

php artisan key:generate
php artisan migrate:fresh --seed
php artisan cache:clear
php artisan config:clear
php artisan route:clear
php artisan serve --port=$PORT --host=0.0.0.0

Nginx vhost.conf

upstream laravel {
server laravel:9000;
}

server {
listen 80;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_pass http://laravel;
}
}

有没有大佬遇到过类似的情况?是我Dockerfile里的npm构建步骤有问题,还是服务器资源不足导致卡住?希望能得到大家的指点,谢谢!

备注:内容来源于stack exchange,提问作者janullo789

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.22 08:49:34