docker compose:浏览器无法访问与nginx共享的文件

时间:2019-12-01 16:47:46

标签: nginx docker-compose nginx-config

我正在学习docker,我需要为nginx和php创建一个容器。显然是正确的,但是我无法访问文件。我不知道我做错了什么,或者我有错误的site.conf文件。

我的docker-compose.yml文件是:

version: "3.7"

services:

  http:
    hostname: nginx_container
    domainname: mysite.local
    build: ./infrastructure/docker/nginx
    ports:
      - "8085:80"
    volumes:
      - ./src/www:/usr/share/nginx/html
      - ./src/site.conf://etc/nginx/conf.d/default.conf
    restart: always
    networks:
      - code-network

  php:
    build: ./infrastructure/docker/php
    volumes:
      - ./src/www:/usr/share/nginx/html
    restart: always
    networks:
      - code-network

networks:
    code-network:
        driver: bridge

nginx Dockerfile是:

FROM nginx:stable
MAINTAINER foo

php Dockerfile是:

FROM php:7.3-fpm
MAINTAINER foo

site.conf文件为:

server {
    listen 80;
    index index.php index.html;
    server_name localhost;
    error_log  /var/log/nginx/error.log;
    access_log /var/log/nginx/access.log;
    root /usr/share/nginx/html;

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass php:9000;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
    }
}

在src / www路径中,我有一个index.html,index.php和一个php-status.php文件,它们的内容相同:

<?php

phpinfo();

但是,如果我尝试访问http://localhost:8085http://localhost:8085/index.php,则会收到ERR_EMPTY_RESPONSE

如果我尝试使用http://mysite.localhttp://mysite.local:8085http://mysite.local/index.php,则会得到ERR_NAME_NOT_RESOLVED

我还没有修改hosts文件,但是目标是通过mysite.local到达索引,但是如果我无法通过localhost到达它,即使添加,我也无法通过mysite.local到达它。到主机文件中。

我已经整天试图解决它,但是我错过了一些东西,无法访问php-info()。有人可以帮我吗?

使用的版本:

  • Docker引擎19.03.5
  • Docker编写1.24.1
  • Docker机器0.16.2
  • macOS Mojave 10.14.6

0 个答案:

没有答案