Я пытался следовать руководству по настройке типичного стека Web-Dev с Docker, состоящего из PHP, Nginx и MySql.
Git-репозиторий можно найти здесь:
https://github.com/osteel/docker-tutorial-2
Всякий раз, когда я пытаюсь получить доступ http://192.168.99.100:80 (используя Docker Toolbox) я получаю ошибку 403 запрещено.
Docker-Compose.yml:
version: "2.1"
services:
nginx:
build: ./nginx/
ports:
- 80:80
volumes:
- "${PROJECT_ROOT}:/var/www/html:ro"networks:
- server
depends_on:
- php
php:
build: ./php/
expose:
- 9000
volumes:
- "${PROJECT_ROOT}:/var/www/html"networks:
- database
- server
depends_on:
- mysql
mysql:
image: mysql:latest
volumes:
- data:/var/lib/mysql
networks:
- database
environment:
MYSQL_ROOT_PASSWORD: "${DB_ROOT_PASSWORD}"MYSQL_DATABASE: "${DB_NAME}"MYSQL_USER: "${DB_USERNAME}"MYSQL_PASSWORD: "${DB_PASSWORD}"
phpmyadmin:
image: phpmyadmin/phpmyadmin
ports:
- 8080:80
networks:
- database
depends_on:
- mysql
environment:
PMA_HOST: mysql
volumes:
data:
networks:
database:
server:
.env:
PROJECT_ROOT=./www/html
DB_ROOT_PASSWORD=secret
DB_NAME=project
DB_USERNAME=project
DB_PASSWORD=project
default.conf (nginx-configuration):
server {
listen 80 default_server;
root /var/www/html;
index index.html index.php;
charset utf-8;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location = /favicon.ico { access_log off; log_not_found off; }
location = /robots.txt { access_log off; log_not_found off; }
access_log off;
error_log /var/log/nginx/error.log error;
sendfile off;
client_max_body_size 100m;
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass php:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_intercept_errors off;
fastcgi_buffer_size 16k;
fastcgi_buffers 4 16k;
}
location ~ /\.ht {
deny all;
}
}
Nginx-Dockerfile:
FROM nginx:latest
COPY ./default.conf /etc/nginx/conf.d/default.conf
Структура проекта:
nginx
default.conf
Dockerfile (copies default.conf to nginx configuration location)
php
Dockerfile (installs extensions)
www
html
index.php
.env
docker-compose.yml
Я уверен, что проблема как-то связана с правами доступа к файлам, но я не знаю достаточно о Docker, чтобы более подробно остановиться на проблеме, и другие ответы о проблемах, подобных этой, мне пока не помогли, поэтому я публикую здесь ,
Заранее спасибо!
Задача ещё не решена.
Других решений пока нет …