Symfony не может создать директорию кеша в Docker - PullRequest
0 голосов
/ 19 марта 2019

я делаю docker-compose для моего приложения symfony, оно работает, но выдает ошибку прав доступа, когда приложение пытается создать каталог кэша:

это мой файл docker-compose:

nginx:
      image: nginx:1.15-alpine
      restart: unless-stopped
      ports:
        - "8000:80"
      volumes:
        - .:/app:delegated
        - ./docker/nginx/nginx.conf:/etc/nginx/conf.d/default.conf:ro
      depends_on:
        - php

    php:
      build:
        context: .
        dockerfile: docker/php-fpm/Dockerfile
      restart: unless-stopped
      ports:
        - "9030:9001"
      volumes:
        - .:/app:delegated

и это мой php dockerfile:

FROM composer:1.8 AS vendor

COPY composer.json composer.lock /app/

RUN composer install \
     --ignore-platform-reqs \
        --no-interaction \
        --no-plugins \
        --no-scripts \
        --prefer-dist

FROM php:7-fpm-alpine3.8
WORKDIR /app
RUN docker-php-ext-install sockets mysqli mbstring bcmath pdo_mysql pdo
COPY . /var/www/html/app
COPY --from=vendor ./app/vendor/ /var/www/html/app/vendor/
COPY ./docker/php-fpm/php-ini-overrides.ini /etc/php/7.0/fpm/conf.d/99-overrides.ini

EXPOSE 80

это выдает мне эту ошибку, когда я вхожу в localhost: 8000

Fatal error: Uncaught RuntimeException: Unable to create the cache directory (/app/app/cache/prod) in /app/app/bootstrap.php.cache:2725 Stack trace: #0 /app/app/bootstrap.php.cache(2686): Symfony\Component\HttpKernel\Kernel->buildContainer() #1 /app/app/bootstrap.php.cache(2465): Symfony\Component\HttpKernel\Kernel->initializeContainer() #2 /app/app/AppKernel.php(19): Symfony\Component\HttpKernel\Kernel->boot() #3 /app/app/bootstrap.php.cache(2496): AppKernel->boot() #4 /app/web/app.php(28): Symfony\Component\HttpKernel\Kernel->handle(Object(Symfony\Component\HttpFoundation\Request)) #5 {main} thrown in /app/app/bootstrap.php.cache on line 2725

как я могу это исправить?

1 Ответ

0 голосов
/ 19 марта 2019

Пользователь, ответственный за создание каталога кэша, не имеет прав для этого.

Вы можете попробовать добавить в свой Dockerfile

RUN setfacl -R -m u:www-data:rwX -m u:`whoami`:rwX ./app/cache ./app/logs
RUN setfacl -dR -m u:www-data:rwX -m u:`whoami`:rwX ./app/cache ./app/logs

Вы также можете запустить это на своем хосте, еслиВы пользователь Linux:

sudo chown www-data:www-data -R app/cache/ app/logs/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...