【发布时间】:2020-02-12 15:57:07
【问题描述】:
在 Windows 10(本地开发)上的最后一次 docker 更新(似乎是这样)后我遇到了问题。当我在 PhpStorm(以及其他编辑器 - Sublime、Notepad+)中更改文件时,过了一会儿,容器内的文件没有收到更改。
暂时有帮助的步骤:
- 如果我完全关闭所有容器,然后再次启动它们。
docker-compose down && docker-compoes up - 如果我进入 php-fpm 容器并且对于未更改的文件运行
touch file.php(此文件将立即更改)。
我尝试过但没有帮助:
- 我重新启动了 php-fpm 和 nginx 容器
docker-compose restart php-fpm nginx(是的,这很奇怪,因为所有容器的 down|up 都有帮助) - 我在 PhpStorm 设置中进行了更改使用安全写入(首先保存临时文件的更改)
我还检查了容器内的文件的 inode。与ls -lai file.php。在更改生效之前和损坏之后,我拥有相同的 inode 编号。没有确定我必须做多少更改才能中断同步,它是随机的,有时 2 次更改就足够了。
我有:
Docker 版本 19.03.5,内部版本 633a0ea
docker-compose 版本 1.25.2,构建 698e2846
docker-compose.yml
version: '3'
services:
nginx:
container_name: pr_kpi-nginx
build:
context: ./
dockerfile: docker/nginx.docker
volumes:
- ./:/var/www/kpi
- ./docker/nginx/default.conf:/etc/nginx/conf.d/default.conf
- ./docker/nginx/fastcgi.conf:/etc/nginx/fastcgi.conf
ports:
- "8081:80"
links:
- php-fpm
networks:
- internal
php-fpm:
container_name: pr_kpi-php-fpm
build:
context: ./
dockerfile: docker/php-fpm.docker
volumes:
- ./:/var/www/kpi
links:
- kpi-mysql
environment:
# 192.168.221.1 -> host.docker.internal for Mac and Windows
XDEBUG_CONFIG: "remote_host=host.docker.internal remote_enable=1"
PHP_IDE_CONFIG: "serverName=Docker"
networks:
- internal
mailhog:
container_name: pr_kpi-mailhog
image: mailhog/mailhog
restart: always
ports:
# smtp
- "1025:1025"
# http
- "8025:8025"
networks:
- internal
kpi-mysql:
container_name: pr_kpi-kpi-mysql
image: mysql:5.7
command: mysqld --sql_mode="STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
volumes:
- ./docker/storage/kpi-mysql:/var/lib/mysql
environment:
# We must change prod secrets, this is not good approach
- "MYSQL_ROOT_PASSWORD=pass"
- "MYSQL_USER=user"
- "MYSQL_PASSWORD=user_pass"
- "MYSQL_DATABASE=kpi_db"
ports:
- "33061:3306"
networks:
- internal
kpi-npm:
container_name: pr_kpi-npm
build:
context: ./
dockerfile: docker/npm.docker
volumes:
- ./:/var/www/kpi
- /var/www/kpi/admin/node_modules
ports:
- "4200:4200"
networks:
- internal
tty: true
# For xdebug
networks:
internal:
driver: bridge
ipam:
driver: default
config:
- subnet: 192.168.221.0/28
附:有未解决的问题: https://github.com/docker/for-win/issues/5530
附言我们需要将 Docker 从 2.2.0.0 更新到 2.2.0.3,似乎已经修复了
【问题讨论】:
-
请添加您的 docker-compose.yml
-
@RiWe docker-compose 已添加
-
docker-compose.yml 对我来说看起来不错。
-
有同样的问题。想知道主机上的睡眠是否会触发它。触摸有时会修复它。重新启动 docker 桌面并没有解决它。
标签: php windows docker nginx phpstorm