【问题标题】:how can I access my web app in url after docker composer up -ddocker compose up -d 后如何在 url 中访问我的网络应用程序
【发布时间】:2019-08-26 14:17:48
【问题描述】:

嗨,你能帮我,为什么我在浏览器app.dev 中访问时看不到我的页面,它说无法连接。我只看到控制台中的回声,你能在我的 docker-compose.yml 中帮助我吗?在我的 dockerfile 中缺少什么。我的 php 是正确的图像吗?

  version: "3.7"
services:

  web:
    build: .
    image: nginx:latest
    container_name: nginx-container
    ports:
      - "8080:80"
    expose:
      - 9000
    volumes:
      - ./:/var/www/myapp
      - ./default.conf:/etc/nginx/conf.d/default.conf
    links:
      - php
  php:
    image: php:7-fpm
    container_name: php-container

  db:
    image: mysql
    container_name: mysql-container
    command: --default-authentication-plugin=mysql_native_password
    volumes:
      - ./mysql-data:/var/lib/mysql
    expose:
      - 3306
    ports:
      - "3306:3306"
    environment:
      MYSQL_ROOT_PASSWORD: rootpass

site.conf

   server {
        listen  80;
         index index.php;
         server_name app.dev;
         error_log  /var/log/nginx/error.log;
         access_log /var/log/nginx/access.log;
         root /var/www/myapp;

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

码头文件

FROM php:7.2-cli
COPY . /var/www/myapp
WORKDIR /var/www/myapp

RUN apt-get update && apt-get install -y \
        libfreetype6-dev \
        libjpeg62-turbo-dev \
        libpng-dev \
    && docker-php-ext-install -j$(nproc) iconv \
    && docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \
    && docker-php-ext-install -j$(nproc) gd

entrypoint [ "php", "./index.php" ]

【问题讨论】:

  • 当你运行docker-compose up -d 时会发生什么?
  • 当我输入 localhost 它显示 nginx 页面
  • "当我输入 localhost 时它会显示 nginx 页面"
  • 但我已经编辑了主机文件 127.0.0.1 app.dev 。仍然没有显示回声
  • 哦,但是为什么不是 index.php 呢?我有 index.php echo "Hello World my first docker";但它没有显示

标签: docker docker-compose docker-for-windows


【解决方案1】:

我检查了你的docker-compose.yaml 文件:

您已将当前路径挂载到/var/www,假设有项目文件。

但是sit.conf:

配置Nginx的根文档为/目录。

所以这里发生的是 Nginx 尝试在 / 中找到 index.php,当它找不到时,它使用 Nginx 的默认配置并显示其默认页面。

解决您的问题:

site.conf root 修改为root /var/www/,当然还要检查权限并确保它是正确的并且可以正常工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-24
    • 2021-11-04
    • 2017-09-26
    相关资源
    最近更新 更多