Я пытаюсь смонтировать локальный каталог в каталог докера, чтобы изменения могли быть внесены в исходный код и немедленно отражены в работающем приложении Laravel.Но он все равно не работает, когда я добавляю том докера в образ сервиса в файле yml.Вместо этого появляется ошибка 404 Not Found:
Not Found
The requested URL / was not found on this server.
Вот что я сделал:
docker-compose.yml
version: '2'
services:
laravel:
build:
context: ./
dockerfile: .dockerfile
ports:
- "8080:80"
working_dir: /var/www
volumes:
- .:/var/www
depends_on:
- mysql
mysql:
image: mysql:5.6.36
volumes:
- db_data:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=
- MYSQL_DATABASE=homestead
- MYSQL_ALLOW_EMPTY_PASSWORD=yes
phpmyadmin:
depends_on:
- mysql
image: phpmyadmin/phpmyadmin
restart: always
ports:
- 8090:80
environment:
PMA_HOST: mysql
MYSQL_ROOT_PASSWORD:
volumes:
db_data:
Dockerfile
FROM php:7.1.5-apache
#install all the system dependencies and enable PHP modules
RUN apt-get update && apt-get install -y \
libicu-dev \
libpq-dev \
libmcrypt-dev \
git \
zip \
unzip \
&& rm -r /var/lib/apt/lists/* \
&& docker-php-ext-configure pdo_mysql --with-pdo-mysql=mysqlnd \
&& docker-php-ext-install \
intl \
mbstring \
mcrypt \
pcntl \
pdo_mysql \
pdo_pgsql \
pgsql \
zip \
opcache
#install composer
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/bin/ --filename=composer
#set our application folder as an environment variable
ENV APP_HOME /var/www/html
#change uid and gid of apache to docker user uid/gid
RUN usermod -u 1000 www-data && groupmod -g 1000 www-data
#change the web_root to laravel /var/www/html/public folder
RUN sed -i -e "s/html/html\/public/g" /etc/apache2/sites-enabled/000-default.conf
# enable apache module rewrite
RUN a2enmod rewrite
#copy source files and run composer
COPY . $APP_HOME
# install all PHP dependencies
RUN composer install --no-interaction
#change ownership of our applications
RUN chown -R www-data:www-data $APP_HOME
К вашему сведению, все отлично работает, когда том не добавлен в laravel
образ службы, но обновления не сделалиОтразить на док-контейнере.Мне нужно перестраивать изображения и контейнеры каждый раз, когда вносятся изменения.
Вопрос: Как изменения, сделанные в Laravel, могут отражаться в контейнере Docker?