gpt4 book ai didi

docker - docker 中的可写文件夹权限

转载 作者:行者123 更新时间:2023-12-01 15:02:07 27 4
gpt4 key购买 nike

我有一个 docker 设置,其中包含一些用于 localhost 的网站。我使用 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 手动设置,但我正在寻找自动 全局解决方案,因为我有很多网站都有这个问题

还值得一提的是我正在使用一个非常干净的 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

使用一个小的 dockerfile 来了解基础知识:
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)

最佳答案

我用这里的解决方案解决了同样的问题:Running docker on Ubuntu: mounted host volume is not writable from container

只需要添加:

RUN chmod a+rwx -R project-dir/smarty.cache.dir

到 Dockerfile

关于docker - docker 中的可写文件夹权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35760760/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com