我試圖創建一個由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,然後相應地更改上面的行。