Laravel Не найдено, Docker, Apache2 - PullRequest
0 голосов
/ 18 марта 2020

Я пытаюсь подключиться к своему контейнеру, но получаю следующую ошибку. До этого мой контейнер работал без проблем. Я сделал новую сборку, но она не работает.

Мой Docker файл имеет следующий вид:

FROM php:7.2-apache

LABEL maintainer="christianahvilla@gmail.com"

# Install PHP
RUN apt-get update && apt-get install -y \
    curl \
    zlib1g-dev \
    libzip-dev \
    nano

# Add and Enable PHP-PDO Extenstions
RUN docker-php-ext-install mysqli pdo pdo_mysql
RUN docker-php-ext-enable pdo_mysql
RUN docker-php-ext-install zip

# # Install PHP Composer
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/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

COPY --chown=www-data:www-data . $APP_HOME

#Expose Port 8000 since this is our dev environment
EXPOSE 8000

Мой Docker -Состав:

version: "3.7"
services: 
    #Laravel App
    web:
        build:
            context: .
            dockerfile: Dockerfile
        ports:
            - 8000:80
        volumes:
            - ./:/var/www
            - ./public:/var/www/html
        networks:
            - mynet
        depends_on: 
            - db

    #MySQL Service
    db:
        image: mysql:5.7
        container_name: db
        ports:
            - 3306:3306
        environment:
            MYSQL_DATABASE:
            MYSQL_USER: 
            MYSQL_PASSWORD: 
            MYSQL_ROOT_PASSWORD: 
        volumes:
            - mysqldata:/var/lib/mysql/
        networks:
            - mynet

#Docker Networks
networks:
    mynet:
        driver: bridge
#Volumes
volumes:
    mysqldata:
        driver: local

Когда я пытаюсь получить доступ к http:localhost: 8000 / я могу это сделать, но если я пытаюсь получить доступ к другому маршруту, я получаю сообщение об ошибке.

enter image description here

1 Ответ

1 голос
/ 18 марта 2020

Вам нужно настроить apache2.conf в /etc/apache2/apache2.conf из Dockerfile, а также a2endmode rewrite, наконец, вам нужно перезапустить apache2:

RUN sed -i '/<Directory \/var\/www\/>/,/<\/Directory>/ s/AllowOverride None/AllowOverride All/' /etc/apache2/apache2.conf
RUN a2enmod rewrite
RUN service apache2 restart

Затем запустить docker-compose build и docker-compose up -d

...