php - PHP脚本看不到卷中的目录
问题描述
我有我的 docker-compose.yml 文件。我有 php7.3-fpm 和 nginx 的容器。在我的 docker-compose.yml 文件中,我有类似的卷
`volumes:
- ./:/var/www/html/email-sender`
此卷与 nginx 和 php 容器相同。一切正常,但是当我尝试检查我的 php 脚本是否存在任何目录时(在 /var/www/html/email-sender/my-awesome-directory 中)PHP 函数(is_dir
或dir
)返回 false。我检查了权限,每个目录都有777
和www-data
所有者。有什么想法吗?我附上我的docker-compose.yml
文件和Dockerfile
services:
php:
build: docker/build
environment:
COMPOSER_ALLOW_SUPERUSER: 1
XDEBUG_CONFIG: "remote_host=192.168.0.104"
PHP_IDE_CONFIG: "serverName=PHPSTORM"
volumes:
- ./:/var/www/html/email-sender
web:
image: nginx:latest
ports:
- "8080:80"
volumes:
- ./:/var/www/html/email-sender
- php
和 Dockerfile
RUN apt-get update && apt-get install -yq git zip unzip libpng-dev libzip-dev libpq-dev mc && \
docker-php-ext-configure pgsql -with-pgsql=/usr/local/pgsql && \
docker-php-ext-install mysqli pdo pdo_mysql pdo_pgsql zip bcmath && \
echo "date.timezone = Europe/Warsaw" > /usr/local/etc/php/php.ini && \
rm -rf /var/lib/apt/lists/* && \
php -r "copy('https://getcomposer.org/installer', '/tmp/composer-setup.php');" && \
php /tmp/composer-setup.php --install-dir=/usr/local/bin --filename=composer && \
rm -rf /tmp/composer-setup.php && \
pecl install xdebug && \
docker-php-ext-enable xdebug
WORKDIR /var/www/html/email-sender/
RUN chown -R www-data:www-data /var/www/html/email-sender
USER www-data
解决方案
如果您使用的是 docker-compose 的第2版,您可以在您的 Web 容器中使用它:
volumes_from:
- php
只需在服务之前添加此行
version: '2'
推荐阅读
- rust - 指定 Rust 闭包的生命周期
- node.js - 为什么 Node.js 不能导入模块?错误 [ERR_MODULE_NOT_FOUND]
- java - 有没有任何方法可以使用 selenium 处理身份验证警报,而无需任何操作系统工具,如 autoIT 和机器人
- html - 将 .HTML Jupyter Markdown 上传到 Git 页面
- woocommerce - 以编程方式将订单注释和项目元注释添加到现有的 woocommerce 订单
- postgresql - 如何提高sql查询速度并快速获取记录
- omnet++ - 如何控制数据包生成率和发送间隔
- node.js - 在 REST 中使用 Facebook Flow 登录(带有 TypeScript + Passport.js 的 Express.js)- 几个问题
- c# - 如何在 C# 中解析这些 JSON 数据,简单地切换到 javascript 会更有益吗?
- appdynamics - Appdynamics - 体验旅程地图 - 下车率