Это мой первый раз, когда я разрабатываю докер-приложение.Я хочу, чтобы все мои сервисы работали из контейнера, пока я редактировал код с моего локального компьютера.
Итак, у меня есть корневая папка, которая называется test/
, и я хочу следовать этому уроку https://auth0.com/blog/developing-restful-apis-with-lumen/. Так что мне нужен композитор, веб-сервер (nginx) и база данных (mysql).
У меня внутри корневой папки есть файл docker-compose следующим образом:
version: '2'
services:
composer:
image: composer
container_name: composer
volumes:
- ./authors:/app
restart: always
tty: true
command: bash
php:
image: php:fpm
container_name: php
restart: always
tty: true
working_dir: /var/www
volumes:
- ./authors:/var/www
environment:
- "DB_PORT=3306"
- "DB_HOST=mysql"
nginx:
image: nginx
container_name: nginx
restart: always
tty: true
working_dir: /var/www
volumes_from:
- php
volumes:
- ./vhost.conf:/etc/nginx/conf.d/default.conf
ports:
- 8080:80
mysql:
image: mysql:5.7
container_name: mysql
restart: always
tty: true
ports:
- "3306:3306"
environment:
MYSQL_DATABASE: hmh
MYSQL_USER: root
MYSQL_ROOT_PASSWORD: root
volumes:
- dbdata:/var/lib/mysql
#Volumes
volumes:
dbdata:
А вот файл конфигурации, используемый для nginx:
server {
listen 80;
index index.php index.html;
root /var/www/public;
location / {
try_files $uri /index.php?$args;
}
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass php:8000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
}
КомпозиторКонтейнер есть, так что я могу перейти в любое время, когда мне нужно, и запустить несколько команд, а также иметь возможность поднять проект из него, запустив php -S localhost:8000 -t public
, это фактически регистрирует консоль, что сервер работает, НО, когда я захожу в localhost:8080 он показывает только экран приветствия nginx.
Итак, я знаю, что nginx работает, composer позволяет мне выполнять всю необходимую работу, но как мне маршрутизировать php-сервер через nginx?Я могу зайти внутрь контейнера php, и запустить сервер, но при переходе по URL он не работает.Если это не так много, я хотел бы получить объяснение, а не только решение.Спасибо.