Php 无法创建容器源不是目录。启动项目时遇到错误
我编写了dockerfile,如下所示: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
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目录?