【问题标题】:Writable folder permissions in dockerdocker中的可写文件夹权限
【发布时间】:2016-06-16 02:31:24
【问题描述】:

我有一些用于 localhost 的网站的 docker 设置。我使用 Smarty 作为我的模板引擎,它需要有一个可写的 templates_c 文件夹。知道如何使这个文件夹可写吗?

错误如下:

PHP Fatal error:  Smarty error: unable to write to $compile_dir 
'/var/www/html/sitename.local/httpdocs/templates_c'. 
Be sure $compile_dir is writable by the web server user. in 
/var/www/html/sitename.local/httpdocs/libs/Smarty.class.php on 
line 1093

我知道这可以通过 linux 手动设置,但我正在寻找一种自动的全局解决方案,因为我有很多网站都有这个问题

另外值得一提的是,我正在使用一个非常干净的 docker-compose.yml

php56:
  build: .
  dockerfile: /etc/docker/dockerfile_php_56
  volumes:
    - ./sites:/var/www/html
    - ./etc/php:/usr/local/etc/php
    - ./etc/apache2/apache2.conf:/etc/apache2/conf-enabled/apache2.conf
    - ./etc/apache2/hosts.conf:/etc/apache2/sites-enabled/hosts.conf
  ports:
    - "80:80"
    - "8080:8080"
  links:
    - mysql


mysql:
  image: mysql
  ports:
    - "3306:3306"
  environment:
    - MYSQL_ROOT_PASSWORD=MY_PASSWORD
    - MYSQL_DATABASE=YOUR_DATABASE_NAME
  volumes: 
    - ./etc/mysql:/docker-entrypoint-initdb.d

用一个小的 dockerfile 来做基础:

FROM php:5.6-apache

RUN /usr/local/bin/docker-php-ext-install mysqli mysql
RUN    docker-php-ext-configure mysql --with-libdir=lib/x86_64-linux-gnu/ \
    && docker-php-ext-install mysql
RUN a2enmod rewrite

https://github.com/wesleyd85/docker-php7-httpd-apache2-mysql(但随后使用 php 5.6)

【问题讨论】:

  • 您的 Docker 守护进程是在 Linux 主机上运行还是在某些 Mac boot2docker/docker-machine 类型的设置上运行?
  • 它正在使用 docker/docker-machine 和 docker-compose 在 OSX 上运行
  • 让我猜猜 :),您是从不在用户主目录中的文件夹中运行它的吗?如果是这样,请将设置放在您的主目录中,您应该有 80% 的机会 :)
  • 比如 home 是指终端中的 /home 还是 OSX 中 finder 中的主文件夹?
  • 然后检查一下:stackoverflow.com/questions/33575351/… 已经为其他人解决了同样的问题 :) 很可能应用于您的 php 容器/图像的 usermod 部分可以解决问题,只需 CTRL +F for usermod :)

标签: docker docker-compose


【解决方案1】:

我用这里的解决方案解决了同样的问题:Running docker on Ubuntu: mounted host volume is not writable from container

只需要添加:

RUN chmod a+rwx -R project-dir/smarty.cache.dir

到 Dockerfile

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-12-06
    • 1970-01-01
    • 2011-08-21
    • 1970-01-01
    • 1970-01-01
    • 2019-07-29
    • 2020-06-08
    • 1970-01-01
    相关资源
    最近更新 更多