Итак, есть несколько вопросов. Во-первых, ваши подстановочные знаки должны быть **
, а не ***
. Библиотека globbing, используемая Skaffold, не распознает ***
и поэтому рассматривает ее как буквальную часть имени пути. А так как у вас нет каталога с буквальным названием ***
, правила syn c не совпадают, и поэтому изменения вашего файла приводят к перестроению образа.
Когда я исправляю символы подстановки, ваша установка все еще не выполняется работать для меня.
Во-первых, я вижу предупреждение, когда я изменяю index.php
:
Syncing 1 files for testappacr.azurecr.io/test-app-admin:4c76dec58e1ef426b89fd44e3b340810db96b6961c5cacfdb76f62c9dc6725b8
WARN[0043] Skipping deploy due to sync error: copying files: didn't sync any files
Skaffold по умолчанию сокращает выход из системы на уровне предупреждения. Если я вместо этого запускаю skaffold dev -v info
, я получаю дополнительную информацию:
INFO[0011] files modified: [admin/src/index.php]
Syncing 1 files for testappacr.azurecr.io/test-app-admin:4c76dec58e1ef426b89fd44e3b340810db96b6961c5cacfdb76f62c9dc6725b8
INFO[0011] Copying files: map[admin/src/index.php:[/app/src/src/index.php]] to testappacr.azurecr.io/test-app-admin:4c76dec58e1ef426b89fd44e3b340810db96b6961c5cacfdb76f62c9dc6725b8
WARN[0011] Skipping deploy due to sync error: copying files: didn't sync any files
Обратите внимание на пункт назначения, о котором сообщается, /app/src/src/index.php
. Это двойное src
возникает, когда для WORKDIR
вашего изображения установлено значение /app/src
, а ваше правило PHP syn c сохраняет путь в app/admin
. Вы можете исправить это, внеся изменения в skaffold.yaml
, чтобы убрать ведущие src
:
- src: "src/**/*.php"
dest: .
strip: src
Возможно, вам придется изменить и другие правила, а также заметить, что вы можете использовать dest: ..
в своих правилах. .
(Примечание: я все еще вижу ошибку didn't sync any files
. Я действительно запускаю skaffold dev --status-check=false
, чтобы предотвратить ожидание Skaffold состояния развертывания - я полагал, что развертывание никогда не будет успешным, поскольку я не сделал ' не может иметь никаких допустимых файлов PHP. Но оказывается, что развертывания на самом деле заканчивались неудачей, потому что у меня не было доступной заявки на постоянный том, и поэтому модуль не запустился. И поскольку не было запущенных контейнеров, файлы никогда не были синхронизировал, и поэтому Скаффолд сообщил, что синхронизация не удалась. Поэтому мораль этой истории в том, что синхронизация файлов работает только для запуска контейнеров.)