Служите докеризованному приложению ZendFramework2 с помощью nginx

Я хочу докеризировать ZendFramework2 Приложение с Nginx, Mysql и PHP7.

Когда я бегу docker-compose up все контейнеры построены. Но когда я хочу получить доступ localhost:8080 Я получаю страницу по умолчанию nginx, хотя default.conf был заменен моим site.conf, Перезапуск контейнера nginx ничего не изменил.

Поскольку это моя первая попытка dockerizing приложения, я также хотел бы получить отзыв о моей настройке docker

Я последовал за этот Учебник, но он не работает ни в простейшей форме.

Вы могли бы использовать мой Пример приложения воспроизвести это поведение.

Заранее спасибо за помощь

докер-compose.yml

version: '2'

services:
db:
image: mysql:5.7
restart: always
volumes:
- db_data:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: ferienhof
MYSQL_DATABASE: ferienhof
MYSQL_USER: ferienhof
MYSQL_PASSWORD: ferienhof

web:
depends_on:
- db
image: nginx:latest
ports:
- "8080:80"volumes:
- ./src:/code
- ./resources/site.conf:/etc/nginx/conf.d/default.conf
links:
- php
php:
build: .
volumes:
- ./src:/code
volumes:
db_data:

Dockerfile для php

php.ini взяты из GitHub

FROM php:7.1-fpm

RUN apt-get update && apt-get install -y \
git \
cron \
libfreetype6-dev \
libicu-dev \
libjpeg62-turbo-dev \
libmcrypt-dev \
libpng12-dev \
libxslt1-dev

# Configure the gd library
RUN docker-php-ext-configure \
gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/

# Install required PHP extensions
RUN docker-php-ext-install \
gd \
intl \
mbstring \
mcrypt \
pdo_mysql \
xsl \
zip \
soap

# Install the 2.4 version of xdebug that's compatible with php7
RUN pecl install -o -f xdebug-2.4.0

COPY resources/php.ini /usr/local/etc/php/

# Install composer and put binary into $PATH
RUN curl -sS https://getcomposer.org/installer | php \
&& mv composer.phar /usr/local/bin/ \
&& ln -s /usr/local/bin/composer.phar /usr/local/bin/composer

# Install phpunit and put binary into $PATH
RUN curl -sSLo phpunit.phar https://phar.phpunit.de/phpunit-old.phar \
&& chmod 755 phpunit.phar \
&& mv phpunit.phar /usr/local/bin/ \
&& ln -s /usr/local/bin/phpunit.phar /usr/local/bin/phpunit

# Install PHP Code sniffer
RUN curl -OL https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar \
&& chmod 755 phpcs.phar \
&& mv phpcs.phar /usr/local/bin/ \
&& ln -s /usr/local/bin/phpcs.phar /usr/local/bin/phpcs \
&& curl -OL https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar \
&& chmod 755 phpcbf.phar \
&& mv phpcbf.phar /usr/local/bin/ \
&& ln -s /usr/local/bin/phpcbf.phar /usr/local/bin/phpcbf

ресурсы / site.conf

server {
server_name php-docker.local;
error_log  /var/log/nginx/error.log;
access_log /var/log/nginx/access.log;
listen       80;
root         /code/public;

location / {
index index.php;
try_files $uri $uri/ @php;
}

location @php {
# Pass the PHP requests to FastCGI server (php-fpm) on 127.0.0.1:9000
fastcgi_pass   php:9000;
fastcgi_param  SCRIPT_FILENAME /code/public/index.php;
include fastcgi_params;
}
}

0

Решение

Я немного поменял свой docker-compose. Рабочие файлы можно найти по адресу http://git.schulz.codes/bootstrap/docker-php/tree/master

0

Другие решения

Ваш конфиг nginx использует php-docker.local как server_name, но вы заходите на сайт с именем localhost,

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector