хост не найден в исходной "php -fpm" в /etc/nginx/conf.d/default.conf - PullRequest
0 голосов
/ 17 февраля 2020

Я получил эту ошибку при попытке запустить 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 -создать, но также и ошибку

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...