Не могу получить доступ к моему проекту Laravel через Apache в Docker - каталог / var / www / пуст - PullRequest
0 голосов
/ 15 марта 2019

Итак, я создал образ 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

1 Ответ

0 голосов
/ 16 марта 2019

Похоже, проблема в вашем docker-compose.yml файле. Файлы, которые вы копируете в /var/www в вашем php-apache.dockerfile, скрываются отображением тома в вашем файле docker-compose.yml. Удалите следующие строки из составного файла:

  volumes:
    - ./:/var/www
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...