在docker中可写的文件夹权限
我有一个泊坞窗安装与本地主机的一些网站。 我使用Smarty作为我的模板引擎,它需要有一个可写的templates_c文件夹。 任何想法如何使这个文件夹可写?
错误如下:
PHP Fatal error: Smarty error: unable to write to $compile_dir '/var/www/html/sitename.local/httpdocs/templates_c'. Be sure $compile_dir is writable by the web server user. in /var/www/html/sitename.local/httpdocs/libs/Smarty.class.php on line 1093
我知道这可以手动设置与Linux,但我正在寻找一个自动的全球解决scheme,因为我有很多网站谁有这个问题
另外值得一提的是我使用了一个相当干净的docker-compose.yml
php56: build: . dockerfile: /etc/docker/dockerfile_php_56 volumes: - ./sites:/var/www/html - ./etc/php:/usr/local/etc/php - ./etc/apache2/apache2.conf:/etc/apache2/conf-enabled/apache2.conf - ./etc/apache2/hosts.conf:/etc/apache2/sites-enabled/hosts.conf ports: - "80:80" - "8080:8080" links: - mysql mysql: image: mysql ports: - "3306:3306" environment: - MYSQL_ROOT_PASSWORD=MY_PASSWORD - MYSQL_DATABASE=YOUR_DATABASE_NAME volumes: - ./etc/mysql:/docker-entrypoint-initdb.d
基本的小docker文件:
FROM php:5.6-apache RUN /usr/local/bin/docker-php-ext-install mysqli mysql RUN docker-php-ext-configure mysql --with-libdir=lib/x86_64-linux-gnu/ \ && docker-php-ext-install mysql RUN a2enmod rewrite
https://github.com/wesleyd85/docker-php7-httpd-apache2-mysql (但随后与PHP 5.6)
我在这里解决了同样的问题: 在Ubuntu上运行docker:挂载的主机卷不能从容器写入
只需要添加:
RUN chmod a+rwx -R project-dir/smarty.cache.dir
到Dockerfile