Почему докер не синхронизирует файлы внутри контейнера в Windows 10?Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Почему докер не синхронизирует файлы внутри контейнера в Windows 10?

Сообщение Anonymous »

У меня возникла проблема после последнего обновления докера (кажется, да) в Windows 10 (локальная разработка). Когда я менял файлы в PhpStorm (и в других редакторах - Sublime, Notepad+), через некоторое время файлы внутри контейнера не получали изменений.
Шаги, которые могут помочь на время:
  • Если я полностью закрою все контейнеры и после этого подниму их снова. docker-compose down && docker-compoes up
  • Если я попаду в контейнер php-fpm и для файла, который не был изменен, запустил touch file.php (этот файл будет немедленно изменен).
Что я пробовал, и это не помогло:
  • Я перезапустил контейнеры php-fpm и nginx docker-compose restart php-fpm nginx (Да, это странно, потому что помогло вниз|вверх для всего контейнера)
  • Я изменил настройку PhpStorm Использовать безопасную запись (сначала сохраните изменения для временного файла)
Также я проверил индексный дескриптор для файла внутри контейнера. С помощью ls -lai file.php. До того, как изменения сработали, и после того, как они сломались, у меня был тот же номер инода. Не существует определенного количества изменений, которые я должен сделать, чтобы прервать синхронизацию, это происходит случайно, иногда достаточно двух изменений.
У меня есть:
  • 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
PS: здесь есть открытая проблема:
https://github.com/docker/for-win/issues/5530
P.P.S. Нам нужно обновить Docker с 2.2.0.0 до 2.2.0.3. Кажется, это исправлено

Подробнее здесь: https://stackoverflow.com/questions/600 ... windows-10
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»