Я пытаюсь настроить простой рабочий процесс сайта Grav, используя git, Docker и два контейнера: один для nginx и один для PHP. Идея состоит в том, чтобы git clone
в мою каплю Digital Ocean и запустить docker-compose up -d --build
для создания и обслуживания веб-сайта.
У меня возникают проблемы с разрешениями, когда я пытаюсь получить доступ к сайтам, и даже документация Grav о поиске и устранении неисправностей. проблемы с разрешениями не помогают.
Вот мой docker-compose.yml
:
version: '3'
services:
web:
build:
context: .
dockerfile: ./docker/nginx/Dockerfile
ports:
- "80:80"
volumes:
- ./src:/var/www/html
links:
- php
php:
build:
context: .
dockerfile: ./docker/php/Dockerfile
volumes:
- ./src:/var/www/html
А вот Dockerfile nginx:
FROM nginx:stable-alpine
WORKDIR /var/www/html
COPY ./src .
COPY ./docker/nginx/default.conf /etc/nginx/conf.d/default.conf
Если это пригодится, вот конфигурация nginx, которую я использую:
server {
listen 80;
index index.php index.html;
server_name www.gravtest.test gravtest.test;
error_log /var/log/nginx/gravtest.test.error.log;
access_log /var/log/nginx/gravtest.test.access.log;
root /var/www/html;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
try_files $uri =404;
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_param PATH_INFO $fastcgi_path_info;
}
}
Dockerfile PHP прост, он просто порождает php:7.3-fpm
и устанавливает несколько зависимостей, таких как opcache, gd, et c .. .
Всякий раз, когда я пытаюсь получить доступ к сайту через localhost
, я получаю эту ошибку:
Неустранимая ошибка: Uncaught RuntimeException: Создание каталога не удалось для / var / www/html/cache/compiled/files/40779d000b68629af00dd987148afc06.yaml.php in / var / www/html/vendor/rockettheme/toolbox/File/src/File.php: 325 Трассировка стека: ....
Файлы копируются с хоста в контейнер с владельцем nginx:nginx
, поэтому я должен быть хорошо, но похоже, что нет. Я попытался установить папки / файлы chmod, используя документацию Grav, но без кубиков.
Я что-то упустил?