docker - 如何将文件的写入权限授予 docker 用户
问题描述
我有一个需要访问本地文件(/var/www/html
例如文件夹)的 php 站点。我有以下错误,我认为这是由于正确的问题:
Warning: mkdir(): Permission denied in /var/www/html/lib/model/core/JsonData.php
对我来说,docker的apache用户必须拥有本地文件的权限。
我对此进行了测试,但它使 docker-compose 崩溃:
command: chown -R www-data:www-data /var/www/html
我在 docker 中测试了no prod命令chmod ugo+rwx /var/www/html
,但在本地,它没有任何改变。
我的码头工人撰写:
version: "3.7"
networks:
gc-net:
ipam:
driver: default
config:
- subnet: "172.20.111.0/24"
services:
gc-webserver:
image: chialab/php-dev:7.4-apache
restart: always
command: chown -R www-data:www-data /var/www/html
networks:
gc-net:
ipv4_address: 172.20.111.10
volumes:
# content
- /home/hadock/samus/Projects/intervalle/App/sites_web:/var/www/html
# logs
- ./apache_log:/var/log/apache2
# vhost
- ./vhost/001-gamecash.conf:/etc/apache2/sites-enabled/001-gamecash.conf
# apache modules
- ./apache_modules/rewrite.load:/etc/apache2/mods-enabled/rewrite.load
- ./apache_modules/expires.load:/etc/apache2/mods-enabled/expires.load
- ./apache_modules/filter.load:/etc/apache2/mods-enabled/filter.load
- ./apache_modules/deflate.load:/etc/apache2/mods-enabled/deflate.load
- ./apache_modules/ssl.load:/etc/apache2/mods-enabled/ssl.load
# cert
- ./ssl:/var/imported/ssl
# apache2.conf
- ./apache_conf/apache2.conf:/etc/apache2/apache2.conf
ports:
- "14080:80"
- "14443:443"
gc-mysql:
image: mysql:5.6.45
restart: always
networks:
gc-net:
ipv4_address: 172.20.111.20
volumes:
- /home/hadock/samus/Database/mysql-5:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=root
解决方案
推荐阅读
- angular - 如果没有从 GIT 获取 .spec 文件更改,则跳过 Jenkins 阶段进行“ng 测试”
- python - 使用python在垂直条中绘制列表像素列表
- uikit - SwiftUI:如何从 UIViewRepresentable 内的协调器(MKMapView 委托)访问控制器?
- javascript - 滚动到底部时呈现下一页
- python - 无法接受用户输入来添加标记
- c# - C# SQLite – 从单行获取值的最佳方法
- python - Django 模板从选项标签中获取值
- pyspark - 获取窗口的总行数
- oracle - Apex:存储静态应用程序文件的表?
- java - java.util.ConcurrentModificationException 在 Apache Tomee Plus 7.1.2 发布时启动 ear 文件