2016-02-16 11 views
5

Próbuję dokować aplikację Laravel 5.2. Do tego używam następujących obrazów,Docker apache2 nie bierze pod uwagę nowego 000-default.conf

php:apache 
mysql:5.7 

Poniżej jest moje docker-compose.yml

web: 
    build: . 
    volumes: 
    - ./:/var/www/html 
    ports: 
    - "9899:80" 
    links: 
    - db 
    command : [/usr/sbin/apache2ctl, -D, FOREGROUND] 

db: 
    image: mysql:5.7 
    volumes: 
    - /home/data:/var/lib/mysql 
    environment: 
    MYSQL_DATABASE: custom 
    MYSQL_ROOT_PASSWORD: custom 

i mój Dockerfile

FROM php:apache 
RUN apt-get update && docker-php-ext-install pdo pdo_mysql 
RUN rm -f /etc/apache2/sites-available/000-default.conf 
ADD ./settings/000-default.conf /etc/apache2/sites-available 

Zarówno Dockerfiledocker-compose.yml i znajdują się w katalogu laravel korzeniowego. Aby uruchomić aplikację opartą na systemie laravel, serwer musi wskazywać folder public. Tak, widać jestem zastępując apache2 „s domyślny plik konfiguracyjny z poniższej 000-default.conf pliku

<VirtualHost *:80> 
    ServerAdmin [email protected] 
    DocumentRoot /var/www/html/public 

    ErrorLog ${APACHE_LOG_DIR}/error.log 
    CustomLog ${APACHE_LOG_DIR}/access.log combined 
</VirtualHost> 

Wszystko działa poprawnie na komendę docker-compose up ale kiedy mogę przeglądać localhost:9899 uzyskać Zakazane błąd, ale localhost:9899/public uruchamia laravel aplikację poprawnie. Oznacza to, że mój dostarczony 000-default.conf nie działa i serwer nadal wskazuje na /var/www/html/ zamiast /var/www/html/public.

Więc próbowałem, exec, aby dostać się do uruchomionego pojemnika, aby sprawdzić 000-default.conf. I mogłem zobaczyć mój plik zamiast domyślnego. Nie przejmuję się tym problemem. Chcę, żeby Apache rozważył moją 000-default.conf. Mam nadzieję, że wy możecie zobaczyć, co robię źle.

Odpowiedz

3

Apache nie wygląda w katalogu sites-available, ale raczej w katalogu sites-enabled. Można ADD Twój config-file w tym katalogu lub utwórz dowiązania:

ADD ./settings/000-default.conf /etc/apache2/sites-available 
RUN ln -s /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-enabled/000-default.conf 
+0

pliku konfiguracyjnego w witrynach włączoną jest dowiązaniem symbolicznym, które wskazuje na plik w witrynach-dostępny –

Powiązane problemy