如何解决Docker部署Symfony 6时的权限拒绝问题
Symfony 6容器化后启动出现500错误排查求助
刚学习Docker,近期尝试将Symfony 6应用容器化。配置了一套基础部署环境,但启动服务器后出现严重的500错误,错误内容过多无法全部粘贴,已附上截图。
操作步骤:先构建镜像,将生成的镜像关联到docker-compose.yml文件后启动容器。
排查情况:重点查看错误首行,发现路径存在异常,但无法通过现有方法修改。怀疑错误源于apache.conf配置有误,但路径看起来正确,因此无法确定问题所在。
以下是我的Docker配置文件:
Dockerfile
FROM php:8.2-apache ADD https://github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions /usr/local/bin/ RUN chmod +x /usr/local/bin/install-php-extensions && \ install-php-extensions gd xdebug RUN curl -sSk https://getcomposer.org/installer | php -- --disable-tls && \ mv composer.phar /usr/local/bin/composer RUN apt update && apt install -yqq nodejs npm COPY . /var/www/ COPY ./docker/apache.conf /etc/apache2/sites-available/000-default.conf ENV COMPOSER_ALLOW_SUPERUSER=1 RUN cd /var/www/ && \ composer install && \ npm install --force && \ composer require symfony/webpack-encore-bundle && \ composer require symfony/dotenv && \ npm run build WORKDIR /var/www/ EXPOSE 80
docker-compose.yml
version: '3' services: database: image: postgres:${POSTGRES_VERSION:-15}-alpine environment: POSTGRES_DB: ${POSTGRES_DB:-app} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-!ChangeMe!} POSTGRES_USER: ${POSTGRES_USER:-symfony} volumes: - database_data:/var/lib/postgresql/data:rw app: image: sha256:6ffb6a8bd9083d4f5f8723a75c216c926669aafe29000886fd071f580eecf529 ports: - "8080:80" environment: DATABASE_URL: postgresql://symfony:!ChangeMe!@127.0.0.1:5432/app?serverVersion=15&charset=utf8 volumes: database_data:
apache.conf
<VirtualHost *:80> ServerName localhost DocumentRoot /var/www/public DirectoryIndex /index.php <Directory /var/www/public> AllowOverride None Order Allow,Deny Allow from All FallbackResource /index.php </Directory> ErrorLog /var/log/apache2/project_error.log CustomLog /var/log/apache2/project_access.log combined </VirtualHost>
我会继续自行排查,若找到问题根源会回来说明。感谢任何帮助我解决该错误的人,祝大家晚安。
内容的提问来源于stack exchange,提问作者MrMarrant
相关产品推荐
相关产品推荐

