如何向docker用户授予文件写入权限
我有一个php站点需要访问本地文件(例如如何向docker用户授予文件写入权限,docker,docker-compose,Docker,Docker Compose,我有一个php站点需要访问本地文件(例如/var/www/html文件夹)。 我有以下错误,我认为这是由于一个正确的问题: Warning: mkdir(): Permission denied in /var/www/html/lib/model/core/JsonData.php 对我来说,docker的apache用户必须拥有本地文件的权限 我对此进行了测试,但它使docker compose崩溃: command: chown -R www-data:www-data /var/www
/var/www/html
文件夹)。
我有以下错误,我认为这是由于一个正确的问题:
Warning: mkdir(): Permission denied in /var/www/html/lib/model/core/JsonData.php
对我来说,docker的apache用户必须拥有本地文件的权限
我对此进行了测试,但它使docker compose崩溃:
command: chown -R www-data:www-data /var/www/html
我在docker和local中测试no-prod命令chmod ugo+rwx/var/www/html
,但在local中,它没有改变任何东西
我的码头工人:
version: "3.7"
networks:
gc-net:
ipam:
driver: default
config:
- subnet: "172.20.111.0/24"
services:
gc-webserver:
image: chialab/php-dev:7.4-apache
restart: always
command: chown -R www-data:www-data /var/www/html
networks:
gc-net:
ipv4_address: 172.20.111.10
volumes:
# content
- /home/hadock/samus/Projects/intervalle/App/sites_web:/var/www/html
# logs
- ./apache_log:/var/log/apache2
# vhost
- ./vhost/001-gamecash.conf:/etc/apache2/sites-enabled/001-gamecash.conf
# apache modules
- ./apache_modules/rewrite.load:/etc/apache2/mods-enabled/rewrite.load
- ./apache_modules/expires.load:/etc/apache2/mods-enabled/expires.load
- ./apache_modules/filter.load:/etc/apache2/mods-enabled/filter.load
- ./apache_modules/deflate.load:/etc/apache2/mods-enabled/deflate.load
- ./apache_modules/ssl.load:/etc/apache2/mods-enabled/ssl.load
# cert
- ./ssl:/var/imported/ssl
# apache2.conf
- ./apache_conf/apache2.conf:/etc/apache2/apache2.conf
ports:
- "14080:80"
- "14443:443"
gc-mysql:
image: mysql:5.6.45
restart: always
networks:
gc-net:
ipv4_address: 172.20.111.20
volumes:
- /home/hadock/samus/Database/mysql-5:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=root
能否将应用程序配置为在其他地方写入?覆盖其自身的源代码似乎是一个潜在的重大安全问题。我找到了一个解决方案(我不确定生产,但在本例中这是一个开发环境),我将要修改的文件夹放在docker的
temp
文件夹中,一切正常。