0
基本的なドッキング・コンテナを持っています。ドッキング・コンポジット(バージョン3)を使用して基本LAMPスタックを構築しています。
ドッカーコンテナ内に作成されたファイルは、常にrootによって所有されているため、ローカルで編集することはできません。
私はローカルユーザと同じuidを持つコンテナwww-dataユーザを設定しようとしましたが、動作しますが、新しいファイルはrootによって作成されます。
ローカルで編集できるファイルをコンテナに作成するにはどうすればよいですか?Docker - ルートではなくwww-データとして新しいファイルを作成します。
私の作成ファイル。
version: "3"
services:
webserver:
build:
context: ./docker/containers/webserver
container_name: 'apache7.1-webserver'
restart: 'always'
ports:
- "80:80"
- "443:443"
links:
- mysql
volumes:
- ${DOCUMENT_ROOT}:/var/www/html
- ${PHP_INI}:/usr/local/etc/php/php.ini
- ${VHOSTS_DIR}:/etc/apache2/sites-enabled
- ${APACHE_LOG_DIR}:/var/log/apache2
mysql:
build: ./docker/containers/mysql
container_name: 'apache7.1-mysql'
restart: 'always'
ports:
- "3306:3306"
volumes:
- ${MYSQL_DATA_DIR}:/var/lib/mysql
- ${MYSQL_LOG_DIR}:/var/log/mysql
environment:
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
MYSQL_DATABASE: ${MYSQL_DATABASE}
MYSQL_USER: ${MYSQL_USER}
MYSQL_PASSWORD: ${MYSQL_PASSWORD}
redis:
container_name: 'apache7.1-redis'
image: redis:latest
ports:
- "6379:6379"
マイウェブサーバーDockerfile;
FROM php:7.1-apache
# Get any build argument overrides
ARG APP_UID
ARG APP_GID
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
RUN apt-get clean -y \
&& apt-get update -y \
&& apt-get install -y \
g++ \
locales \
libxml2-dev \
php-soap \
zlib1g-dev \
libicu-dev \
libfreetype6-dev \
libjpeg62-turbo-dev \
libpng12-dev \
libmcrypt-dev \
libpng12-dev \
libcurl4-openssl-dev \
libxml2-dev \
nano \
&& apt-get clean -y
RUN docker-php-ext-install mysqli mbstring zip intl mcrypt curl json
RUN docker-php-ext-install iconv xml xmlrpc
RUN docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \
&& docker-php-ext-install -j$(nproc) gd
# Add any required locales here and restart php-fpm, note that some locales do not include currencies such as EURO, if
# this is the case then they will need to be generated in addition to main locale
RUN sed -i -e 's/# en_GB.UTF-8 UTF-8/en_GB.UTF-8 UTF-8/' /etc/locale.gen \
&& sed -i -e 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen \
&& sed -i -e 's/# pt_BR.UTF-8 UTF-8/pt_BR.UTF-8 UTF-8/' /etc/locale.gen \
&& sed -i -e 's/# de_AT.UTF-8 UTF-8/de_AT.UTF-8 UTF-8/' /etc/locale.gen \
&& sed -i -e 's/# [email protected] ISO-8859-15/[email protected] ISO-8859-15/' /etc/locale.gen \
&& sed -i -e 's/# de_DE.UTF-8 UTF-8/de_DE.UTF-8 UTF-8/' /etc/locale.gen \
&& sed -i -e 's/# fr_FR.UTF-8 UTF-8/fr_FR.UTF-8 UTF-8/' /etc/locale.gen \
&& dpkg-reconfigure --frontend=noninteractive locales \
&& kill -USR2 1
RUN pecl install redis-3.1.2 \
&& pecl install xdebug-2.5.0 \
&& docker-php-ext-enable redis xdebug
# Enable apache modules
RUN a2enmod rewrite headers
# Change www-data user to match the host system UID and GID and chown www directory
RUN usermod --non-unique --uid 1000 www-data \
&& groupmod --non-unique --gid 1000 www-data \
&& chown -R www-data:www-data /var/www
私は1000を(そしてwww-データ)に設定しています。私がこれを行うと、コンテナは起動しません – Rooneyl
何がエラーですか? –
(13)アクセスが拒否されました:AH00072:make_sock:アドレス0.0.0.0:80にバインドできませんでした リスニングソケットがありません。シャットダウン – Rooneyl