文件树:
├── docker-compose.yml
├── Dockerfile
└── www
└── index.html
Dockerfile:
FROM php:5.6-apache
ADD ./www /var/www/html/
WORKDIR /var/www/html/
搬运工-compose.yml
version: '2'
services:
php5_6:
build: .
ports :
- "80:80"
volumes:
- ./www:/var/www/html/
尝试启动docker
$ docker-compose up
[core:error] [pid 17] (13)Permission denied: [client 172.19.0.1:53514] AH00035: access to /index.html denied (filesystem path '/var/www/html/index.html') because search permissions are missing on a component of the path
在浏览器http://localhost 403页
中怎么了?
答案 0 :(得分:2)
我知道我的答案来晚了,但是其他人将从这个答案中得到一些帮助。
最后使用:z
或:Z
选项以足够的权限挂载卷。确切地说,这将添加一个selinux规则chcon -Rt svirt_sandbox_file_t /path/to/volume
version: '2'
services:
php7_2:
build: .
ports :
- "80:80"
volumes:
- "./www:/var/www/html/:Z"
了解更多信息,
答案 1 :(得分:0)
错误消息表明apache没有对html目录的适当访问权限。特别是除了读取权限之外,它可能还需要执行权限。
尝试将RUN chmod -R 755 /var/www/html/
添加到Dockerfile。
答案 2 :(得分:0)
SELinux启用了问题。在/ etc / selinux / conf中禁用将解决它。