Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.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 无法创建容器源不是目录。启动项目时遇到错误_Php_Docker_Nginx_Docker Compose - Fatal编程技术网

Php 无法创建容器源不是目录。启动项目时遇到错误

Php 无法创建容器源不是目录。启动项目时遇到错误,php,docker,nginx,docker-compose,Php,Docker,Nginx,Docker Compose,我编写了dockerfile,如下所示: FROM nginx:1.13.8-alpine RUN apk add --no-cache curl COPY app/index.php /app COPY nginx/default.conf /etc/nginx/conf.d/default.conf version : '3.3' services: php: build: ./php/ volumes: - 'appvolume:/a

我编写了dockerfile,如下所示:

FROM nginx:1.13.8-alpine
RUN apk add --no-cache curl

COPY app/index.php /app

COPY nginx/default.conf /etc/nginx/conf.d/default.conf
version : '3.3'

services: 
    php:
      build: ./php/
      volumes:
       - 'appvolume:/app'
       - '/php/local.ini:/usr/local/etc/php/conf.d/local.ini'
      working_dir: /app
      container_name: php_cli
#mysql service
    mysql:
        image: mysql:8.0
        container_name: mysql-server-80
        command : --default-authentication-plugin=mysql_native_password
        working_dir: /app
        volumes:
          - 'dbdata:/var/lib/mysql'
        restart: always
        environment:
          MYSQL_ROOT_PASSWORD : 'duet365'
          MYSQL_DATABASE : 'world'
          MYSQL_USER : 'db_user'
          MYSQL_PASSWORD : 'mypwd'
          SERVICE_NAME: 'mysql'
        ports:
          - '9000:3306' 
        expose:
          - '3306' 
    app:
      build: ./
      volumes:
        - 'appvolume:/app'
      ports:
      - '4000:4000'
      - '444:443'
      links:
        - mysql 
      depends_on:
        - php
        - mysql
#Volumes
volumes:
  dbdata:
    driver: local
  appvolume:
和Docker组成如下文件:

FROM nginx:1.13.8-alpine
RUN apk add --no-cache curl

COPY app/index.php /app

COPY nginx/default.conf /etc/nginx/conf.d/default.conf
version : '3.3'

services: 
    php:
      build: ./php/
      volumes:
       - 'appvolume:/app'
       - '/php/local.ini:/usr/local/etc/php/conf.d/local.ini'
      working_dir: /app
      container_name: php_cli
#mysql service
    mysql:
        image: mysql:8.0
        container_name: mysql-server-80
        command : --default-authentication-plugin=mysql_native_password
        working_dir: /app
        volumes:
          - 'dbdata:/var/lib/mysql'
        restart: always
        environment:
          MYSQL_ROOT_PASSWORD : 'duet365'
          MYSQL_DATABASE : 'world'
          MYSQL_USER : 'db_user'
          MYSQL_PASSWORD : 'mypwd'
          SERVICE_NAME: 'mysql'
        ports:
          - '9000:3306' 
        expose:
          - '3306' 
    app:
      build: ./
      volumes:
        - 'appvolume:/app'
      ports:
      - '4000:4000'
      - '444:443'
      links:
        - mysql 
      depends_on:
        - php
        - mysql
#Volumes
volumes:
  dbdata:
    driver: local
  appvolume:
我的项目文件夹如下所示:

运行docker compose up命令后,出现以下错误:

ERROR: for 8a0cce0f4dbe_php_docker_app_1  Cannot create container for service app: source is not directory

ERROR: for app  Cannot create container for service app: source is not directory
ERROR: Encountered errors while bringing up the project.

由于我是docker的新手,我不知道哪里出了错。据我所知,COPY命令没有问题。

app/index.php
不在Dockerfile所在的上下文中。换句话说,Dockerfile需要位于
app/
nginx/
目录所在的同一目录中。我认为该错误很可能意味着文件
/php/local.ini
不存在存在于主机上(与当前目录无关,位于根文件系统中名为
/php
的目录中)。它会不会找不到app目录和ngnix目录?