Итак, я создал образ Docker проекта Laravel, над которым я работаю, но когда я запускаю контейнеры (с docker-compose up), я не могу получить доступ к приложению.
Яв настоящее время я использую Docker Toolbox для Windows, поэтому я использую IP-адрес с компьютера-докера, но все, что я получаю, это «Запрошенный URL / не найден на этом сервере».(404).
В Docker Terminal я получаю следующие предупреждения:
php-apache_1 | AH00112: Warning: DocumentRoot [/var/www/html] does not exist
php-apache_1 | AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.18.0.3. Set the 'ServerName' directive globally to suppress this message
php-apache_1 | [Fri Mar 15 14:04:10.964296 2019] [core:notice] [pid 1] AH00094: Command line: 'apache2 -D FOREGROUND'
Я прошел по каталогам внутри контейнера (с помощью docker exec -it) и, действительно,Каталог / var / www / html не существует, если каталог / var / www пуст, , но он не должен быть !!
В php-apache.dockerfile Iскопировал весь мой проект в каталог / var / www, поэтому он не должен быть пустым.
Я уже некоторое время пытаюсь решить эту проблему, поэтому, если кто-нибудь сможет мне помочь, я буду очень признателен.
Вот файл php-apache.docker:
FROM php:7.2.9-apache-stretch
RUN apt-get update && apt-get install -y libxml2-dev && apt-get install -y
libcurl3-dev
RUN docker-php-ext-install pdo_mysql mbstring tokenizer xml ctype json
RUN mkdir storage &&\
mkdir storage/logs &&\
mkdir storage/app &&\
mkdir storage/framework &&\
mkdir storage/framework/cache &&\
mkdir storage/framework/sessions &&\
mkdir storage/framework/views &&\
mkdir -p bootstrap/cache
COPY composer.json composer.lock /var/www/
WORKDIR /var/www
COPY . /var/www
RUN curl --silent https://getcomposer.org/installer | php &&\
composer install
COPY public /var/www/html
RUN chown -R www-data:www-data \
/var/www/storage \
/var/www/bootstrap/cache
RUN a2enmod rewrite
EXPOSE 80
И docker-compose.yml:
version: '3'
services:
db:
image: mysql:latest
environment:
- MYSQL_USER=root
- MYSQL_ROOT_PASSWORD=
- MYSQL_DATABASE=ontologyFramework
- MYSQL_ALLOW_EMPTY_PASSWORD=yes
ports:
- "3306:3306"
php-apache:
depends_on:
- db
build:
dockerfile: phpapache.dockerfile
context: .
volumes:
- ./:/var/www
ports:
- "80:80"
environment:
- DB_PORT=3306
- DB_HOST=127.0.0.1
links:
- db