php - Docker-compose 权限错误,chown 不起作用
问题描述
尝试用redis、mysql和mongodb设置一个laravel项目。使用 docker-compose 设置 docker 容器,但是 127.0.0.1 throws The stream or file "/var/www/html/storage/logs/laravel.log" could not be opened: failed to open stream: Permission denied
。Chown'ing 目录,但“app”容器内 /var/www/html 的所有者是 root,而不是 www-data。我该如何解决?
Dockerfile
ARG PHP_VERSION
FROM php:7-fpm-alpine
ARG APP_ENV
ARG REMOTE_WORKING_DIR
RUN apk update && apk add --no-cache $PHPIZE_DEPS \
build-base shadow nano curl gcc git bash \
php7 \
...installing dependencies...
...redis & mongodb...
...php settings...
...installing composer...
RUN rm -rf /var/cache/apk/*
RUN apk add shadow && usermod -u 1000 www-data && groupmod -g 1000 www-data
COPY . $REMOTE_WORKING_DIR
RUN sudo chown -R www-data:www-data $REMOTE_WORKING_DIR
USER www-data
EXPOSE 9000
CMD ["php-fpm"]
码头工人-compose.yml
version: "3"
services:
app:
build:
context: ./docker/php
args:
APP_ENV: ${APP_ENV}
PHP_VERSION: ${PHP_VERSION}
REMOTE_WORKING_DIR: ${REMOTE_WORKING_DIR}
container_name: app
restart: always
env_file: .env
ports:
...
links:
- redis
networks:
...
volumes:
- ${LOCAL_WORKING_DIR}:${REMOTE_WORKING_DIR}
- ./docker/php/config/xdebug.ini:/usr/local/etc/php/conf.d/xdebug.ini
nginx:
...
volumes:
- ${LOCAL_WORKING_DIR}:${REMOTE_WORKING_DIR}
- ./docker/nginx/nginx.conf:/etc/nginx/nginx.conf
- ./docker/nginx/conf.d/:/etc/nginx/conf.d/
- ./docker/nginx/ssl/:/etc/nginx/ssl/
ports:
...
depends_on:
- app
networks:
...
redis:
...
networks:
...
解决方案
推荐阅读
- mysql - MYSQL如何优化表查询速度?
- python - Python Flask MongoDB 默认列
- selenium-webdriver - 我无法单击打印预览弹出窗口上的保存按钮。已选择目标值但无法单击保存按钮
- c# - Azure Durable Framework Function App 非常慢
- node.js - app.set('port',process.env.PORT || 3000); (Object) set ^ TypeError: app.set is not a function
- java - 设计 RDF / 关联数据 API - 我应该按数据图还是按服务公开数据?
- python - 对空生成器做出反应的 Pythonic 方式?
- postgresql - 函数返回列集
- r - 自动将组合散点图和直方图写入文件夹
- python - 带有多 pCollections 输入的带有 python pardo 的 apache 梁