Forbidden You don't have permission to access this resource при использовании Docker

Всем привет, недавно начал изучать Docker и столкнулся со следующей проблемой при открытии страницы контейнера в браузере.


Forbidden
You don't have permission to access this resource.
Apache/2.4.61 (Debian) Server at localhost Port 8080

а также вот такое получил в логах контейнера:
2024-08-21 21:03:12 172.18.0.1 - - [21/Aug/2024:18:03:12 +0000] "GET / HTTP/1.1" 403 493 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36" 2024-08-21 21:03:12 [Wed Aug 21 18:03:12.937792 2024] [autoindex:error] [pid 17:tid 17] [client 172.18.0.1:44598] AH01276: Cannot serve directory /var/www/html/: No matching DirectoryIndex (index.php,index.html) found, and server-generated directory index forbidden by Options directive
Из лога понятно, что ошибка из-за того, что не найдены index.php и html файлов, но только где именно указывать путь до этих файлов?
Dockerfile

# Используем официальный PHP образ с Apache
FROM php:8.3-apache
# Устанавливаем зависимости и расширения PHP
RUN apt-get update && apt-get install -y \
    libpng-dev \
    libjpeg-dev \
    libfreetype6-dev \
    libzip-dev \
    unzip \
    && docker-php-ext-configure gd --with-freetype --with-jpeg \
    && docker-php-ext-install gd \
    && docker-php-ext-install zip \
    && docker-php-ext-install pdo_mysql mysqli
# Устанавливаем Composer
COPY --from=composer:latest /usr/bin/composer /usr/bin/composer
# Копируем исходный код в контейнер
COPY . /var/www/html
# Указываем рабочий каталог
WORKDIR /var/www/html
# Устанавливаем зависимости Laravel
RUN composer install
# Копируем .env файл
COPY .env.example .env
# Выполняем миграции базы данных
RUN php artisan key:generate
# Открываем порт
EXPOSE 80
# Запускаем Apache
CMD ["apache2-foreground"]


docker-compose.yml

version: '3.8'

services:
  # Сервис для PHP с Apache
  web:
    image: php:8.3-apache
    ports:
      - "8080:80"  # Пробрасываем порт 80 контейнера на порт 8080 хоста
    volumes:
      - D:/OSPanel/domains/gallery:/var/www/html
    networks:
      - app-network

  # Сервис для MySQL
  db:
    image: mysql:8.0
    environment:
      - MYSQL_ALLOW_EMPTY_PASSWORD=yes
      - MYSQL_DATABASE=galleryDB
    volumes:
      - db_data:/var/lib/mysql
    networks:
      - app-network

networks:
  app-network:
    driver: bridge

volumes:
  db_data:


default.conf апаче конфиг файл

ServerRoot "/usr/local/apache2"
Listen 80
ServerName localhost

DocumentRoot "/var/www/html/public"

<Directory "/var/www/html/public">
    AllowOverride All
    Require all granted
</Directory>

<FilesMatch \.php$>
    SetHandler application/x-httpd-php
</FilesMatch>

<IfModule dir_module>
    DirectoryIndex index.php index.html
</IfModule>


<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html/public

    <Directory /var/www/html/public>
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

ErrorLog /usr/local/apache2/logs/error_log
CustomLog /usr/local/apache2/logs/access_log common

Ответы (0 шт):