Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
未在my Laravel容器内更新路由_Laravel_Docker_Docker Compose - Fatal编程技术网

未在my Laravel容器内更新路由

未在my Laravel容器内更新路由,laravel,docker,docker-compose,Laravel,Docker,Docker Compose,我有一个docker作曲: version: '3' services: app: build: context: . dockerfile: .docker/Dockerfile image: laravel-docker ports: - 8080:80 volumes: - ./:/var/www links: - mysql - redis environment:

我有一个docker作曲:

version: '3'
services:
  app:
    build:
      context: .
      dockerfile: .docker/Dockerfile
    image: laravel-docker
    ports:
      - 8080:80
    volumes:
      - ./:/var/www
    links:
      - mysql
      - redis
    environment:
      DB_HOST: mysql
      DB_DATABASE: laravel_docker
      DB_USERNAME: app
      DB_PASSWORD: password
      REDIS_HOST: redis
      SESSION_DRIVER: redis
      CACHE_DRIVER: redis
  mysql:
    image: mysql:5.7
    ports:
      - 13306:3306
    environment:
      MYSQL_DATABASE: laravel_docker
      MYSQL_USER: app
      MYSQL_PASSWORD: password
      MYSQL_ROOT_PASSWORD: password
  redis:
    image: redis:4.0-alpine
    ports:
      - 16379:6379

这个Dockerfile:

FROM php:7.1.8-apache

COPY . /srv/app
COPY .docker/vhost.conf /etc/apache2/sites-available/000-default.conf

WORKDIR /srv/app


RUN docker-php-ext-install mbstring pdo pdo_mysql \
    && chown -R www-data:www-data /srv/app
RUN a2enmod rewrite

这是我运行带有MySQL和Redis的Laravel容器的配置。一切都运行得很好,但当我尝试添加(或更新)新路由时遇到了问题:它不会出现,除非我停止所有容器并使用
--build
标记重新启动它们


有没有办法在不重新启动我的容器的情况下添加和更新路由?

ssh到应用程序容器,并从项目目录运行以下命令:


php-artisan-route:clear

ssh到应用程序容器,并从项目目录运行以下命令:


php-artisan-route:clear

我很想知道您的更改是否正确地传播到卷中。这可能是容器内的权限问题。如果连接到容器并“cat”路由文件的内容,会发生什么情况?它是否与容器外的文件匹配?你在哪个操作系统上运行docker?操作系统的文件系统锁定程度如何?是否有任何限制会使卷的工作变得不正常?另外,您使用的是什么文件系统同步过程?您只是在使用默认设置吗?

我很想知道您的更改是否正确地传播到卷中。这可能是容器内的权限问题。如果连接到容器并“cat”路由文件的内容,会发生什么情况?它是否与容器外的文件匹配?你在哪个操作系统上运行docker?操作系统的文件系统锁定程度如何?是否有任何限制会使卷的工作变得不正常?另外,您使用的是什么文件系统同步过程?您只是在使用默认值吗?

基于您的应用程序位于/srv/app的Dockerfile,但在yml文件中您将/var/www列为装载目标。将其更改为/srv/app

说明: 构建Dockerfile会产生一个不可变的映像。映像中的软件已配置为从/srv/app为您的应用程序提供服务。因为
复制/srv/app
将您的应用程序添加到图像的正确位置,从那里可以很好地提供服务,但该命令会在构建图像时添加该应用程序,然后它会成为图像中不可变的一部分,因此您在主机上所做的更改不会在内部可见。您要做的是将您的项目目录绑定到/srv/app,这将用主机上的目录模糊(临时“替换”)该目录的内容,这就是yml行所做的。(顺便说一句,现有目录不是docker特有的。)


我们经常复制和绑定挂载项目目录的原因是,这种做法允许我们在开发(无需频繁重建图像)和生产中使用相同的Dockerfile。

基于您的应用程序位于/srv/app的Dockerfile,但在yml文件中您将/var/www列为挂载目标。将其更改为/srv/app

说明: 构建Dockerfile会产生一个不可变的映像。映像中的软件已配置为从/srv/app为您的应用程序提供服务。因为
复制/srv/app
将您的应用程序添加到图像的正确位置,从那里可以很好地提供服务,但该命令会在构建图像时添加该应用程序,然后它会成为图像中不可变的一部分,因此您在主机上所做的更改不会在内部可见。您要做的是将您的项目目录绑定到/srv/app,这将用主机上的目录模糊(临时“替换”)该目录的内容,这就是yml行所做的。(顺便说一句,现有目录不是docker特有的。)


我们经常复制和绑定挂载项目目录的原因是,这种做法允许我们在开发(无需频繁重建图像)和生产中使用相同的Dockerfile。

好主意,我没有尝试检查容器内部的内容是否与外部相同!!我会努力的,我会更新你的!如果它们不匹配,我会感到惊讶,但我看到了更奇怪的问题。你也可以看看这个项目,看看它是否有用。这些人经常在这个项目中维护类似的问题。可能值得探索。好主意,我没有试着检查容器内的内容是否与容器外的内容相同!!我会努力的,我会更新你的!如果它们不匹配,我会感到惊讶,但我看到了更奇怪的问题。你也可以看看这个项目,看看它是否有用。这些人经常在这个项目中维护类似的问题。可能值得探索。可能就是这个,是的。可能就是这个,是的。这就是问题所在!!你能解释一下是什么问题吗?我知道这是解决问题的办法,没关系,但我想知道为什么会有这样的问题!无论如何谢谢你!这就是问题所在!!你能解释一下是什么问题吗?我知道这是解决问题的办法,没关系,但我想知道为什么会有这样的问题!无论如何谢谢你!