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

Laravel Docker容器出现异常代码错误,请求排查指引

Docker容器化Web应用时的诡异代码行号错误问题

正在学习Docker,尝试将现有Web应用容器化,但连续多日卡在一个毫无逻辑的异常错误上。项目在本地环境、AWS Elastic Beanstalk(通过CodePipeline部署)中运行完全正常,唯独Docker环境里出现这个问题。

错误提示始终指向代码第51行(此前指向第50行);我在第44行添加了dd调试语句,但dd并未触发,错误依旧指向第51行(添加dd前指向第50行),研究多日仍无法理解原因。

环境细节说明

  • composer install、npm install及npm run build均执行成功
  • public、node_modules和vendor文件夹已加入.dockerignore和.gitignore,这些文件均在容器运行时生成/编译,由PHP-FPM和Nginx提供服务,并未从本地或代码仓库复制到容器中
  • 曾尝试将vendor及npm run build后的public文件夹加入代码仓库,问题依旧

相关配置文件

docker-compose.yml

services:
server:
    container_name: server
    platform: linux/amd64
    image: xxxx/xxmy-private-repoxx
    build:
        context: .
        dockerfile: Dockerfile
    restart: unless-stopped
    tty: true
    working_dir: /var/www
    volumes:
        - /var/www
    ports:
        - "11001:9000"

Dockerfile

FROM php:8.1-fpm as stage-php

# set working directory
WORKDIR /var/www

# install dependencies
RUN --mount=type=cache,target=/var/cache/apt \
    apt-get update -y \
    && apt-get install -y curl unzip libsodium-dev libpq-dev libcurl4-gnutls-dev libonig-dev zlib1g-dev libpng-dev libc-client-dev libkrb5-dev libicu-dev libzip-dev libxslt-dev software-properties-common nginx npm

# install php extensions and cleanup
RUN --mount=type=cache,target=/var/cache/apt \
    docker-php-ext-configure gd \
    && docker-php-ext-configure imap --with-kerberos --with-imap-ssl \
    && docker-php-ext-configure zip \
    && docker-php-ext-install gd soap sodium imap intl mysqli xsl pdo pdo_mysql bcmath curl opcache mbstring zip \
    && apt autoremove -y \
    && apt clean \
    && rm -rf /var/lib/apt/lists/*

# set default user and group
RUN usermod --uid 1000 www-data \
    && groupmod --gid 1000 www-data

# composer and install
COPY --chown=www-data:www-data . /var/www
COPY --from=composer:2.7.2 /usr/bin/composer /usr/bin/composer

# transfer custom configs
COPY ./docker/php/php.ini /usr/local/etc/php/php.ini
COPY ./docker/php/php-fpm.conf /usr/local/etc/php-fpm.d/www.conf
COPY ./docker/php/zz-docker.conf /usr/local/etc/php-fpm.d/zz-docker.conf
COPY ./docker/nginx/fastcgi_params /etc/nginx/fastcgi_params
COPY ./docker/nginx/nginx.conf /etc/nginx/nginx.conf
COPY ./docker/php/entrypoint.sh /app-container-entrypoint.sh

RUN chmod +x /app-container-entrypoint.sh
ENTRYPOINT ["/app-container-entrypoint.sh"]

entrypoint.sh

#!/bin/bash

#if [ ! -f "vendor/autoload.php" ]; then
composer install --no-progress --no-interaction
chown -R www-data:www-data /var/www/vendor

npm install
chown -R www-data:www-data /var/www/node_modules

npm run build
chown -R www-data:www-data /var/www/public
#fi


php-fpm -D
nginx -g "daemon off;"

希望有人能指明解决方向,这是阻碍我推进其他Web应用容器化的唯一问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 22:22:55