Docker – Apache forbidden access with Docker

apachedockerserver

I build this image on docker-compose.yml

version: '2'

services:
  webserver:
  build: ./docker/webserver
  image: image_name
  ports:
    - "80:80"
    - "443:443"
  volumes:
    - /Users/user_name/Sites/site:/var/www/html

And have this commands on Dockerfile

 FROM php:7-apache
 RUN apt-get update -y && apt-get install -y libpng-dev && apt-get 
 install -y libcurl4-openssl-dev
 RUN docker-php-ext-install pdo pdo_mysql gd curl
 RUN a2enmod rewrite
 RUN service apache2 restart

BUT I get

Forbidden

You don't have permission to access / on this server.
Apache/2.4.10 (Debian) Server at localhost Port 80

when I go to localhost.

I work with Mac.
I have used the docker files to other project and all worked great.
what am I missing?

Log response

Cannot serve directory /var/www/html/: No matching DirectoryIndex
(index.php,index.html) found, and server-generated directory index
forbidden by Options directive

Best Answer

Looks like apache is not finding an index page to serve. Ensure your volume mapping is correct (enter the image with docker exec and check contents of /var/www/html folder). If your files are there, ensure that you have an index.html or index.php file for apache to be served.