Docker 与 Symfony 4 - 无法看到文件更改

2024-04-01

我正在为 Symfony 4 应用程序的开发环境开发 docker 映像。我正在构建它alpine, php-fpm and nginx.

我已经配置了一个应用程序,但即使对于简单的 hello world 应用程序,性能也不是很好(~700ms),所以我想我可以以某种方式让它更快。

首先,我进行了语义配置并配置了要使用的卷cached配置。然后,我搬家了vendor分离卷,因为它导致了大部分性能问题。

作为我想用的第二件事docker-sync因为基准看起来令人惊叹。我配置了它,一切都运行顺利。但现在我意识到 docker 对代码的更改没有反应。

首先,我认为这与 Symfony 4 缓存有关,所以我确实连接到php的容器并运行php bin/console cache:clear。缓存已被清除,但docker没有任何反应。我仔细检查了两个文件web and php容器和文件都在那里更改。我想知道是否还需要配置更多内容,或者为什么 Symfony 对更改没有反应。


UPDATE

即使在完成镜像重新构建和删除语义配置后,Symfony/Container 也不会对更改做出反应docker-sync。所以,基本上,它是带有 hello-world symfony 4 应用程序的普通 docker,并且不会对更改做出反应。更改甚至不与容器同步


配置:

# docker-compose-dev.yml
version: '3'
volumes:
  symfony-sync:
    external: true
services:
  php:
    build: build/php
    expose:
      - 9000
    volumes:
      - symfony-sync:/var/www/html/symfony
      - ./vendor:/var/www/html/vendor
  web:
    build: build/nginx
    restart: always
    expose:
      - 80
      - 443
    ports:
      - 8080:80
      - 8081:443
    depends_on:
      - php
    volumes:
      - symfony-sync:/var/www/html/symfony
      - ./vendor:/var/www/html/vendor
networks:
  default:
    driver: bridge
    ipam:
      driver: default
      config:
      - subnet: 172.4.0.0/16

# docker-sync.yml
version: "2"
options:
  verbose: true
syncs:
  symfony-sync:
    src: './symfony'
    sync_excludes:
      - '.git'
      - 'composer.lock'

我用来运行应用程序的 Makefile

start:
    docker-sync stop
    docker-sync clean
    cd symfony
    docker volume create --name=symfony-sync
    cd ..
    docker-compose -f docker-compose-dev.yml down
    docker-compose -f docker-compose-dev.yml up -d
    docker-sync start

stop:
    docker-compose stop
    docker-sync stop

我建议使用小艇代替 docker4mac:https://github.com/codekitchen/dinghy https://github.com/codekitchen/dinghy也尝试一下这个存储库:https://github.com/jorge07/symfony-4-es-cqrs-boilerplate https://github.com/jorge07/symfony-4-es-cqrs-boilerplate

如果这不起作用,问题将出在您的主机或 dockerfile 中。确保您没有为开发启用 opcache。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Docker 与 Symfony 4 - 无法看到文件更改 的相关文章

随机推荐