Docker PHP 权限

Max*_*yer 6 php fedora docker docker-compose grav

我的 php 容器无权在已安装的卷上写入缓存。

docker-compose.yml:

version: '2'
volumes:
    database_data:
        driver: local
services:
    php:
        build: ./docker/php/
        expose:
            - 9000
        volumes:
            - ./public:/var/www/html
        working_dir: /var/www/html
    nginx:
        image: nginx:latest
        depends_on:
            - php
        ports:
            - 80:80
        volumes:
            - ./docker/nginx/default.conf:/etc/nginx/conf.d/default.conf
        volumes_from:
            - php
Run Code Online (Sandbox Code Playgroud)

docker/php/Dockerfile:

FROM php:7.0-fpm

RUN docker-php-ext-install pdo_mysql \
    && docker-php-ext-install json


# Permission fix
RUN usermod -u 1000 www-data
Run Code Online (Sandbox Code Playgroud)

Tan*_*uka 6

您需要调整 www-data 的 uid 和 gif 以匹配文件的所有权。在 php 的 Dockerfile 中:

RUN sed -ri 's/^www-data:x:82:82:/www-data:x:1000:50:/' /etc/passwd
RUN chown -R www-data:www-data /var/www/html
Run Code Online (Sandbox Code Playgroud)


Ist*_*tei 0

你在Mac下使用它吗?尝试将此行附加到您的 php Dockerfile 中: RUN usermod -G Staff www-data