docker php 权限,如何使用docker处理权限 – nginx / php-fpm

我正在尝试使用nginx& amp;部署一个非常简单的Symfony应用程序. php-fpm通过Docker.

两个码头服务:

1. web:运行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正在进行操作,但缓存/日志/会话文件夹不可写.

> nginx使用/ var / www / html来提供静态文件.

> php-fpm使用/ var / www / html来执行php文件.

我不确定这个问题.

但是我如何确定以下内容:

> / var / www / html必须对nginx可读?

> / var / www / html必须可写为php-fpm吗?

注意:我正在从MacbookPro构建图像;缓存/日志/会话是777.

解决方法:

docker-compose.yml支持服务下的user指令.文档只在run命令中提及它,但它的工作原理相同.

我有类似的设置,这就是我的方式:

# 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

user: "$UID"

我必须在运行docker-compose之前运行导出UID,然后将默认用户设置为当前用户.这允许日志记录/缓存等按预期工作.

标签:nginx,php,docker,docker-compose,symfony

来源: https://codeday.me/bug/20190705/1390869.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值