6

我的 php 容器没有权限在已挂载的卷上写入缓存。

码头工人-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

码头工人/php/码头工人文件:

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
4

3 回答 3

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
于 2018-10-19T16:04:43.167 回答
0

你在Mac下使用它吗?尝试在您的 php Dockerfile 中附加这一行: RUN usermod -G staff www-data

于 2017-06-23T08:38:21.690 回答
0

另一种方法是在复制时使用 chown 标志,如此所述。

COPY --chown=<user>:<group> ...
于 2021-09-16T09:27:58.420 回答