La inserción de git local a un git de Azure App Service falla.
Esto ha estado funcionando bien hasta ayer. Realmente no entiendo por qué dotnet está involucrado en la ejecución de inserción en Azure cuando la aplicación se ejecuta en Linux. Estoy ejecutando git desde Windows Powershell localmente y desplegándolo en Linux, git add y git commit funcionan bien pero fallan al empujar. He buscado problemas similares, pero esto es un poco diferente de los otros problemas que encontré aquí.
The error is from git push: PS xxx_deploy> git push Enumerating objects: 3, done. Counting objects: 100% (3/3), done. Delta compression using up to 8 threads Compressing objects: 100% (2/2), done. Writing objects: 100% (2/2), 212 bytes | 212.00 KiB/s, done. Total 2 (delta 1), reused 0 (delta 0) remote: Could not execute because the specified command or file was not found. remote: Possible reasons for this include: remote: * You misspelled a built-in dotnet command. remote: * You intended to execute a .NET Core program, but dotnet-/opt/Kudu/KuduConsole/kudu does not exist. remote: * You intended to run a global tool, but a dotnet-prefixed executable with this name could not be found on the PATH. To https://xxxx.scm.azurewebsites.net/xxxx.git Los archivos que se implementan son .html , .js , .svg , .txt , .css , .png , .ico , algunas fuentes .woff
El dotnet que está buscando no está en esa carpeta, lo he comprobado, pero ¿por qué lo necesita para una implementación de node js?
He intentado un par de sugerencias buscando en Google, que incluyen:
Apreciaría algunas soluciones a esto, ya que ya no puedo impulsar nuevos cambios en la aplicación.
El problema finalmente se resuelve después de probar un puñado de soluciones.
Mi hipótesis, el problema se deriva de un cambio en la versión de la plataforma por parte de Azure App Service. Puedo confirmar esto porque guardé una copia de la configuración de la aplicación de la semana anterior. La versión anterior es PLATFORM_VERSION 94.0.7.109 y la nueva es PLATFORM_VERSION 95.0.7.554, se aplica a mi aplicación, no conozco otras. Esto también condujo a algunos cambios en las variables de entorno. A la RUTA, por ejemplo, le faltaba /opt/dotnet/2.2:/root/.dotnet/tools, la versión de CLR cambió y también lo hizo NODE_VERSION.
Parece que esto creó una falta de coincidencia entre los archivos ya implementados y los nuevos archivos enviados. Lo más probable es que Kudu-git almacene algunos metadatos de la plataforma en su manifiesto, por lo que no se pudo crear un nuevo impulso.
Para resolver el conflicto, cree una nueva interfaz de usuario en su URL de implementación de Kudu, por ejemplo, https://xxxx.scm.azurewebsites.net/newui Desde esta página, abra el terminal bash y elimine todo lo que esté dentro de su directorio de inicio con rm o abra el administrador de archivos. y elimine todos los archivos/carpetas dentro de casa. Realice una nueva confirmación de git y empuje, su aplicación se implementará correctamente. Parece que esto borra todas sus implementaciones anteriores. Funciona bien para un Repo de implementación, sería un desastre si fuera un Repo de código fuente.