如何向docker用户授予文件写入权限

如何向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

我有一个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/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
文件夹中,一切正常。