我正在尝试使用docker设置Symfony项目,但总是给出与“cache”目录中的权限相关的错误.
我已经尝试了一切,我似乎无法找到解决方案.
问题是以某种方式缓存文件夹是用“root”所有者创建的,即使我的服务器和php-fpm用户设置为www-data.也许是因为php-cli用户?
我试过了:
– setfacl:不使用docker
– chown / chmod到www-data:也没用.它可能会在开始时正确地更改所有者,但它们会在其他地方出错.
泊坞窗,compose.yml
app:
build: .
command: "tail -f /dev/null" # keep the application container running
links:
- mysql
volumes:
- .:/var/www
nginx:
build: docker/nginx/
ports:
- 8090:80
links:
- php-fpm
volumes_from:
- app
php-fpm:
build: docker/fpm
ports:
- 9000:9000
volumes_from:
- app
mysql:
image: mysql:5.7
volumes:
- ./docker/data/mysql:/var/lib/mysql
我的app Dockerfile:
FROM php:5.6-cli
ENV DEBIAN_FRONTEND noninteractive
RUN apt-get update && apt-get install -y \n git \n vim \n curl \n php5-json \n php5-intl \n php5-mcrypt \n php5-mysql \n php5-apcu \n php5-gd
ADD /docker/fpm/php.ini /usr/local/etc/php/
# install composer.
RUN curl -sS https://getcomposer.org/installer | php
RUN mv composer.phar /usr/local/bin/composer
RUN usermod -u 1000 www-data
ADD . /var/www
WORKDIR /var/www
PHP-fpm Dockerfile
FROM php:5.6-fpm
ENV DEBIAN_FRONTEND noninteractive
RUN apt-get update && apt-get install -y \n php5-json \n php5-intl \n php5-mcrypt \n php5-mysql \n php5-apcu \n php5-gd
RUN apt-get install -y php5-xdebug
ADD xdebug.ini /usr/local/etc/php/conf.d/
ADD php.ini /usr/local/etc/php/
EXPOSE 9000
WORKDIR /var/www
CMD ["php-fpm"]
Nginx Dockerfile
FROM nginx:latest
ENV DEBIAN_FRONTEND noninteractive
RUN apt-get update && apt-get install -y git vim
ADD nginx.conf /etc/nginx/
ADD symfony.conf /etc/nginx/sites-available/
RUN mkdir -p /etc/nginx/sites-enabled
RUN ln -s /etc/nginx/sites-available/symfony.conf /etc/nginx/sites-enabled/
RUN usermod -u 1000 www-data
EXPOSE 80
EXPOSE 443
ENTRYPOINT ["nginx"]
我没有想法.有什么建议?
谢谢.