首页 > 解决方案 > 如何将文件的写入权限授予 docker 用户

问题描述

我有一个需要访问本地文件(/var/www/html例如文件夹)的 php 站点。我有以下错误,我认为这是由于正确的问题:

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 中测试了no prod命令chmod ugo+rwx /var/www/html,但在本地,它没有任何改变。

我的码头工人撰写:

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

标签: dockerdocker-compose

解决方案


推荐阅读