Если вы видите изображение ниже, ошибка связана со строкой 51 (ранее строка 50); поэтому я добавил dd в строку 44, но ошибка ссылается на строку 50 и даже не вызывает dd (строка 44), а затем все еще показывает ошибку в строке 51 (ранее строка 50, прежде чем я добавил dd). Я ломаю голову над этим уже несколько дней, работая над этим в свободное время. Для меня это просто не имеет смысла.

Я хотел бы отметить, что установка композитора, установка npm и сборка запуска npm прошли успешно. Папки public, node_modules иvendor добавляются в dockerignore и gitignore. Таким образом, все они генерируются/компилируются во время выполнения, а затем обслуживаются fpm и nginx. Ни один из этих файлов не копируется в контейнер ни из моего локального хранилища, ни из репозитория. (И) Я также пытался добавить их в репозиторий (поставщик и общую папку после сборки запуска npm), но все равно получаю ту же ошибку.
Код: Выделить всё
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;"
Подробнее здесь: https://stackoverflow.com/questions/783 ... -container