docker 卷和 apache 权限

use*_*980 5 php apache permissions docker

我正在使用 docker 通过 php 为大型网站提供服务。问题是,当我将主机卷链接到容器时,出现权限错误。我知道我可以跑,chmod -R 777 /var/www但这不是有点危险吗?

我的 Dockerfile

FROM php:7.0.3-apache 
RUN docker-php-ext-install mysqli
RUN a2enmod rewrite
RUN a2enmod headers
RUN docker-php-ext-install pdo_mysql
RUN apt-get update -y && apt-get install -y sendmail libpng-dev

RUN apt-get update && \
    apt-get install -y \
        zlib1g-dev 

RUN apt-get update && apt-get install -y \
        libfreetype6-dev \
        libjpeg62-turbo-dev \
        libpng-dev \
    && docker-php-ext-install -j$(nproc) iconv \
    && docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \
    && docker-php-ext-install -j$(nproc) gd

RUN docker-php-ext-install mbstring

RUN docker-php-ext-install zip

RUN docker-php-ext-install gd
Run Code Online (Sandbox Code Playgroud)

我的 Docker-Compose.yml

version: "2"
services:
    www:
        build: .
        ports: 
            - "80:80"
        volumes:
            - ./test.com:/var/www/
        links:
            - db
        networks:
            - default
    db:
        image: mysql:5.7
        ports: 
            - "3306:3306"
        environment:
            MYSQL_DATABASE: test
            MYSQL_USER: test
            MYSQL_PASSWORD: test
            MYSQL_ROOT_PASSWORD: test
        volumes:
            - ./mysql:/var/lib/mysql
        networks:
            - default
Run Code Online (Sandbox Code Playgroud)

关于如何处理主机卷权限有什么想法吗?

Sve*_*ort 0

正如您已经怀疑的那样, with绝对不是一个好主意。您需要使用以下命令将文件夹和文件添加到 apache 组:并将权限更改为.chmod777chown -R <current_user>:www-data /test.com755

我希望这可以帮助你