我试图创建一个由php:5.6-apache映像,一个mysql映像和一个包含将位于在/ var/www/html等/。卷装有十月CMS。Docker php:5.6-Apache开发环境缺少卷挂载权限
我需要码头用户对卷装载权限,但我不希望它是该卷的所有者,所以我可以在容器外轻松修改它,并立即查看我的修改。
我的搬运工文件如下:
FROM php:5.6-apache
MAINTAINER me <[email protected]>
# Install modules
RUN apt-get update
RUN apt-get -f install -y
RUN apt-get install -y wget
RUN apt-get update && apt-get install -y \
libmcrypt-dev \
libfreetype6-dev \
libjpeg62-turbo-dev \
libmcrypt-dev \
libpng12-dev \
php-apc
RUN docker-php-ext-install mbstring mysql mcrypt pdo pdo_mysql zip
RUN docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/
RUN docker-php-ext-install gd
WORKDIR /var/www/html/
VOLUME /var/www/html/
RUN a2enmod rewrite
RUN usermod -a -G www-data root
RUN php5enmod mcrypt && service apache2 restart
我的码头工人,撰写包含环境变量为MySQL数据库。
当我按原样运行它时,我只得到500错误,但是如果我将卷的所有权更改为www-data,那么站点出现就好了。
我曾尝试使用环境变量将Apache用户和组更改为根,但它没有工作。
任何建议都不胜感激。
更新:我无法找到一个解决方案,以我正在寻找的确切方式解决问题,并最终实现了我认为更像是黑客攻击的事情。我添加下列行到dockerfile:
RUN usermod -u 1000 www-data
RUN groupmod -g 1000 www-data
这些行改变用户和组的搬运工内以匹配所有者,这样,它的完全访问。
请注意,虽然有些情况下您的系统无法识别您的用户1000和组1000.如果这不起作用,请打开docker apache容器,并检查卷的用户ID和组的大小ID,然后相应地更改上面的行。