【发布时间】:2020-01-29 07:42:26
【问题描述】:
我正在尝试通过 Docker 使用 nginx 和 php-fpm 部署一个非常简单的 Symfony 应用程序。
两个 docker 服务:
1. 网络:运行 nginx
2. php:运行php-fpm;包含应用程序源。
我想构建无需任何外部依赖即可部署的映像。
这就是我在 php 容器中复制源代码的原因。
关于开发过程;我正在用本地路径覆盖 /var/www/html 卷。
# file: php-fpm/Dockerfile
FROM php:7.1-fpm-alpine
COPY ./vendor /var/www/html
COPY . /var/www/html
VOLUME /var/www/html
现在是 docker-compose 配置文件。
# file : docker-compose-prod.yml
version: '2'
services:
web:
image: "private/web"
ports:
- 80:80
volumes_from:
- php
php:
image: "private/php"
ports:
- 9000:9000
问题在于权限。
访问 localhost 时,Symfony 正在启动,但 cache / logs / sessions 文件夹不可写。
- nginx 正在使用 /var/www/html 来提供静态文件。
- php-fpm 正在使用 /var/www/html 执行 php 文件。
我不确定这个问题。 但是我怎么能确定以下几点:
- /var/www/html 必须对 nginx 可读?
- /var/www/html 必须对 php-fpm 是可写的?
注意:我正在从 MacbookPro 构建图像; 缓存/日志/会话是 777。
【问题讨论】:
-
如果您没有在
php服务中指定任何卷,volumes_from会做什么?
标签: php symfony nginx docker docker-compose