Итак, сначала позвольте мне объяснить, что я пытаюсь сделать.У меня есть 2 веб-сайта, веб-интерфейс и бэкэнд, веб-интерфейс - это просто HTML и vue, который использует бэкэнд для хранения информации (API)
Веб-сайты: - erp.test (веб-интерфейс) - api.erp.test (backend; php, api)
docker-compose.yml
version: '3'
services:
#web
frontend:
build:
context: .
dockerfile: ./environment/nginx/Dockerfile
container_name: frontend
restart: always
ports:
- 80:80
- 442:442
volumes:
- ./environment/nginx/sites-enabled:/etc/nginx/sites-enabled
- ./frontend/public:/usr/share/nginx/html/frontend
- ./api:/usr/share/nginx/html/api
links:
- php
php:
build:
context: .
args:
version: 7.3.0-fpm
dockerfile: ./environment/php/Dockerfile
container_name: php_backend
restart: always
depends_on:
- mysql
mysql:
build:
context: .
args:
version: 5.7
dockerfile: ./environment/mysql/Dockerfile
restart: always
volumes:
- ./environment/mysql/data:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: laravel
MYSQL_DATABASE: laravel
ports:
- 13306:3306
command:
build:
context: .
dockerfile: ./environment/command/Dockerfile
container_name: command
restart: always
command: "tail -f /dev/null"
volumes:
- ./frontend:/frontend
При этом используются следующие файлы для включенных сайтов.
Мой dockerfile для среды nginx выглядит следующим образом:
FROM nginx
Файлы конфигурации для веб-сайтов:
etc / nginx / sites-enabled / api.erp.test
server {
listen 80;
listen [::]:80;
server_name api.erp.test;
root /usr/share/nginx/html/backend/public;
add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1; mode=block";
add_header X-Content-Type-Options "nosniff";
index index.html index.htm index.php;
charset utf-8;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location = /favicon.ico { access_log off; log_not_found off; }
location = /robots.txt { access_log off; log_not_found off; }
error_page 404 /index.php;
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php7.3.0-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
location ~ /\.(?!well-known).* {
deny all;
}
}
и т.д. / nginx / sites-enabled / erp.test
server {
listen 80;
listen [::]:80;
server_name erp.test;
root /usr/share/nginx/html/frontend/public;
add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1; mode=block";
add_header X-Content-Type-Options "nosniff";
index index.html;
location / {
try_files $uri $uri/ =404;
}
charset utf-8;
}
Оба эти файла должны (я предполагаю) быть активными и работать.Я проверил контейнер и файлы находятся в правильном положении, и я даже добавил IP-адрес контейнера в мой файл hosts на моей машине, например:
172.18.0.3 erp.test172.18.0.3 api.erp.test
Каждый раз, когда я посещаю их URL-адреса, они просто переходят на URL-адрес nginx по умолчанию, а не на определенные веб-сайты.Есть идеи, что я делаю не так?