在本地计算机上对我的Laravel项目进行dockerize时找不到文件

时间:2018-08-22 11:18:19

标签: php docker nginx laravel-5

我正在尝试使用Nginx和php-fpm对Laravel项目进行泊坞化。在终端上运行docker-compose up之后,所有三个容器都可以正常工作,但是我被困在显示自己的index.php的位置。而是在网页上显示找不到文件的错误。

此处提供了docker-compose.yml的配置文件和一些dockerfiles。

#docker-compose.yml
version: '2'

services:
  web:
    container_name: web
    build:
      context: ./
      dockerfile: web.dockerfile
    volumes:
      - ./:/var/www
    ports:
      - "8080:80"
    links:
      - app


  app:
    container_name: app
    build:
      context: ./
      dockerfile: app.dockerfile

    volumes:
      - ./:/var/www
    environment:
      - "DB_PORT=3306"
      - "DB_HOST=database"


  db:
    container_name: database
    image: mysql:5.7
    volumes:
      - dbdata:/var/lib/mysql
    environment:
      - "MYSQL_DATABASE=homestead"
      - "MYSQL_USER=root"
      - "MYSQL_PASSWORD= "
      - "MYSQL_ROOT_PASSWORD= "
    ports:
        - "33061:3306"

volumes:
  dbdata:


#app.dockerfile
FROM php:7.0.4-fpm

RUN apt-get update && apt-get install -y libmcrypt-dev mysql-client\
    #libmagickwand-dev --no-install-recommends \
    #&& pecl install imagick \
    #&& docker-php-ext-enable imagick \
    && docker-php-ext-install mcrypt pdo_mysql

WORKDIR /var/www

#web.dockerfile
FROM nginx:1.10

ADD vhost.conf /etc/nginx/conf.d/default.conf

WORKDIR /var/www


#vhost.config

server {
    listen 80;
    index index.php;
    root /var/www/public;

    location / {
        #sendfile off;
        try_files $uri /index.php?$args;
    }

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

预期的输出是将我的laravel项目与docker链接后显示index.php。我在Windows OS上使用docker工具箱。任何人都可以帮助解决这个问题?预先感谢。

0 个答案:

没有答案