Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php无法在docker中写入文件_Php_Docker_Docker Compose_Symfony 3.4 - Fatal编程技术网

Php无法在docker中写入文件

Php无法在docker中写入文件,php,docker,docker-compose,symfony-3.4,Php,Docker,Docker Compose,Symfony 3.4,我正在使用docker运行Symfony 3.4应用程序,我需要上传一个文件并将其保存到/web/files。当我试图这样做时,我得到一个错误: Unable to create the "/home/docker/web/files/" directory 注意,我在cocker compose中以读写方式挂载了目录: version: '2' services: front: image: nginx ports: - "81:80" link

我正在使用docker运行Symfony 3.4应用程序,我需要上传一个文件并将其保存到/web/files。当我试图这样做时,我得到一个错误:

Unable to create the "/home/docker/web/files/" directory
注意,我在cocker compose中以读写方式挂载了目录:

version: '2'
services:  

  front:
    image: nginx
    ports:
      - "81:80"
    links:
      - "engine:engine"
      - "db:db"
    volumes:
      - ".:/home/docker:ro"
      - "./docker/front/default.conf:/etc/nginx/conf.d/default.conf:ro"

  engine:
    build: ./docker/engine/
    volumes:
      - ".:/home/docker:rw"
      - "./docker/engine/php.ini:/usr/local/etc/php/conf.d/custom.ini:ro"
    links:
      - "db:db"
    working_dir: "/home/docker"

  db:
    image: camptocamp/postgres:9.6
    ports:
      - "5433:5432"
    environment:
      - "POSTGRES_DB=pfe"
      - "POSTGRES_PASSWORD=admin"
      - "POSTGRES_USER=admin"
      - "PGDATA=/var/lib/postgresql/data/pgdata"

我甚至在/web中创建了目录文件,但它不起作用

我为我的文件创建了一个单独的容器,并仅基于apache映像。然后我使用
volumes\u from
键将其传递到我的php中。尝试一下这样的东西:

services:
    apache:
        build: ./build/httpd
        links:
            - php
        ports:
            - 80:80
            - 443:443
        volumes_from:
            - app

    php:
        build: ./build/php
        ports:
            - 9000
            - 9001
        volumes_from:
            - app
        links:
            - mariadb
            - mail

    app:
        image: httpd:latest
        volumes:
            - ./:/var/www/html
        command: "echo true"

我看不出运行另一个Apache容器的目的,但我在这里找到了解决方案:它只是一个同步文件的容器,显然更快,它可能是任何旧映像tbh。请注意,我根本没有设置任何权限,而且我从未收到任何权限错误。关于您找到的答案,您是在docker内部还是在主机操作系统外部运行该命令?