Я получил эту ошибку при попытке запустить docker -составить:
Ошибка: хост не найден в восходящем потоке "php -fpm" в / etc / nginx / conf .d / default.conf
Ниже приведен код, который я использую в docker -compose.yml.
docker - composer версия: '3.7'
services:
ngnix:
build:
args:
VERSION: $NGINX_VERSION
context: .
dockerfile: ./docker/nginx/Dockerfile
target: dev
volumes:
- .:/app
depends_on:
- php-fpm
links:
- php-fpm
ports:
- 81:80
networks:
- inluccnetwork
php-fpm:
build:
args:
VERSION: $PHP_VERSION
context: .
dockerfile: ./docker/php-fpm/Dockerfile
target: dev
volumes:
- .:/app
networks :
- inluccnetwork
command: sh -c 'composer install --no-interaction --optimize-autoloader && php-fpm'
networks:
inluccnetwork :
driver: bridge
Nginx код файла конфигурации в /etc/nginx/conf.d/default.conf:
server {
listen 80;
root /app/web;
include mime.types;
index app_dev.php index.html index.htm;
location / {
try_files $uri @rewriteapp;
}
location @rewriteapp {
rewrite ^(.*)$ /app_dev.php/$1 last;
}
# DEV
# This rule should only be placed on your development environment
# In production, don't include this and don't deploy app_dev.php or config.php
location ~ ^/(app_dev|config)\.php(/|$) {
fastcgi_pass php-fpm:9000;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param DOCUMENT_ROOT $document_root;
internal;
}
# PROD
location ~ ^/app\.php(/|$) {
fastcgi_pass php-fpm:9000;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param DOCUMENT_ROOT $document_root;
internal;
}
# return 404 for all other php files not matching the front controller
# this prevents access to other php files you don't want to be accessible.
location ~ \.php$ {
return 404;
}
location /test {
return 200 '<h1>ok</h1>';
}
error_log syslog;
access_log syslog;
location ~ /\.ht {
deny all;
}
location ~* \.(?:jpg|jpeg|gif|png|ico|cur|gz|svg|mp4|ogg|ogv|webm|htc)$ {
access_log off;
root /app/web;
add_header Cache-Control "max-age=2592000";
expires max;
log_not_found off;
}
# CSS and Javascript
location ~* \.(?:css|js)$ {
add_header Cache-Control "max-age=31536000";
access_log off;
expires max;
log_not_found off;
}
}
код, который я использую в моем docker файле для Nginx:
ARG VERSION
# Dev image
FROM nginx:1.15-alpine as dev
# Copy nginx config
COPY ./docker/nginx/default.conf /etc/nginx/conf.d/default.conf
# Prod image
FROM dev as prod
# Copy assets
COPY ./assets /app/web
У меня ошибка не знаю php -fpm в файле по умолчанию. php, а также я добавляю ссылки на опции в docker -создать, но также и ошибку