【问题标题】:Docker PHP permissionsDocker PHP 权限
【发布时间】:2021-09-16 17:27:58
【问题描述】:

我的 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

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

【问题讨论】:

标签: php docker docker-compose fedora grav


【解决方案1】:

您需要调整 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

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 我使用的是 Linux Fedora 25。
    【解决方案3】:

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

    COPY --chown=<user>:<group> ...
    

    【讨论】:

      猜你喜欢
      • 2021-07-22
      • 2021-04-22
      • 2022-01-18
      • 2018-07-17
      • 2020-06-26
      • 2015-10-19
      • 2016-05-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多