У меня ранее было приложение Node на веб-приложении Azure, которое теперь является приложением Go. Проблема заключается в том, когда я раскрываю я получаю от этого Куды:Как сбросить кешированное развертывание Kudu на Azure
Using cached version of deployment script (command: 'azure -y --no-dot-deployment -r "D:\home\site\repository" -o "D:\home\site\deployments\tools" --node --sitePath "D:\home\site\repository"').
Это, очевидно, жалуется позже, что ни один сервер/app.js файл не найден.
Поэтому я попытался создать сценарий развертывания для своего приложения с помощью azure site deploymentscript --go
.
Несмотря на то, что у меня есть GO15VENDOREXPERIMENT = 1 в настройках приложения, он жаловался на зависимости. Все мои зависимости продаются в папке/vendor.
I чем установить эту переменную внутри файла deploy.cmd
, которые были сгенерированы командой azure site deploymentscript
.
Все еще жалуется, что одной зависимости нет. Обратите внимание, что теперь он ищет локальное дерево поставщиков, но зависимости есть, я вижу его в репозитории Github, и я вижу его локально.
У меня есть другие приложения Go, которые были развернуты только с зависимыми от производителя зависимостями от Azure, но этот, было приложение Node ранее, просто не работает вообще.
Я даже пытался прокомментировать зависимости getter от deploy.cmd
, так как все локально, эти шаги не требуются. Но даже это не сработало, потому что go build
не жаловался на то, что зависимость не существует. Он находится в папке поставщика, а GO15VENDOREEXPERIMENT
установлен в 1 в файле cmd и в настройках приложения.
Так каков мой вариант здесь?
Как я могу сказать Kudu использовать развертывание по умолчанию Go, возможно, тот, который работает от Azure, будет работать, поскольку у моего другого приложения нет локальных файлов .deployement
и deploy.cmd
.
Редактировать
Я просто тест развертывания на совершенно новый Azure веб-приложение, и приложение детектируется как приложение узла по умолчанию. Я предполагаю, что это связано с наличием package.json в корне, у меня также есть main.go, у которого есть package main
как имя пакета.
Возможно, это просто deploy.cmd
, который генерируется azure site deploymentscript
, что не является актуальным или что-то еще? (Я обновил мою версию azure-cli только FYI, так как сначала у меня не было флага -go).
Просто для полноты здесь выход Куду при развертывании на свеже созданного приложения, получая такую же ошибку, как узел одного:
remote: Resolving dependencies remote: # cd .; git clone https://github.com/org/mypkg D:\local\Temp\8d3397e1e014401\gopath\src\github.com\org\mypkg remote: Building Go app to produce exe file remote: Cloning into 'D:\local\Temp\8d3397e1e014401\gopath\src\github.com\org\mypkg'... remote: fatal: could not read Username for 'https://github.com': Bad file descriptor remote: package github.com/org/pkg/lib: exit status 128 remote: azureapp\main.go:3:8: cannot find package "github.com/org/pkg/lib" in any of: remote: D:\local\Temp\8d3397e1e014401\gopath\src\azureapp\vendor\github.com\org\pkg\lib (vendor tree) remote: Copy files for deployment remote: D:\Program Files\Go\1.5.3\src\github.com\org\pkg\lib (from $GOROOT) remote: D:\local\Temp\8d3397e1e014401\gopath\src\github.com\org\pkg\lib (from $GOPATH) remote: KuduSync.NET from: 'D:\home\site\repository' to: 'D:\home\site\wwwroot' remote: Could Not Find D:\home\site\repository\azureapp.exe remote: Copy web.config remote: web.config already existed. Skip remote: Finished successfully. remote: Running post deployment command(s)... remote: Deployment successful.
Почему пытается клонировать библиотеку, эту строку здесь [ вторая линия], вероятно, что причиной всего вопроса:
remote: # cd .; git clone https://github.com/org/mypkg
Почему если SET GO15VENDOREXPERIMENT=1
установлен он пытается клонировать зависимость? Это не делается в моем другом приложении Go.
При получении этого в первый раз я сделал rm -rf при развертывании и в репозитории y, я просто попытался развернуть на новом веб-приложении, и я получаю такую же ошибку, по некоторым причинам зависимости не видны из папки/vendor –
, она пытается клонировать удаленную зависимую систему: # cd.; git clone https://github.com/org/mypkg. Даже если GO15VENDOREXPERIMENT = 1, я не понимаю, что я делаю неправильно. –
можете ли вы попытаться очистить кеш, как упоминает Дэвид и повторить попытку? также будет полезно выполнить разницу во всей переменной окружения, так как вы упомянули, что у вас работает другое приложение Go, чтобы узнать, в чем разница. (чтобы получить переменную среды, просто запустить «установить» на консоли отладки) –