Azure DevOps第一次Web应用部署总是出现错误
我面临着这种奇怪的情况。我有以下设置Azure DevOps第一次Web应用部署总是出现错误,azure,azure-devops,azure-web-app-service,Azure,Azure Devops,Azure Web App Service,我面临着这种奇怪的情况。我有以下设置 使用创建React应用程序创建React JS应用程序 GitHub上的代码 Azure Web应用程序-从Azure门户创建 Azure DevOps+管道+YAML 这周我做了很多部署,我注意到了这种情况。每次第一次部署,在wwwroot文件夹中都会出现以下情况 但是,每个后续部署都可以正常工作 复制 使用Create react app创建新应用程序 把它放到GitHub上 将GitHub存储库链接到Azure DevOps管道 以部署到全新创
- 使用创建React应用程序创建React JS应用程序
- GitHub上的代码
- Azure Web应用程序-从Azure门户创建
- Azure DevOps+管道+YAML
- 使用Create react app创建新应用程序
- 把它放到GitHub上
- 将GitHub存储库链接到Azure DevOps管道
- 以部署到全新创建的Azure Web应用程序的管道为目标
trigger:
- master
pool:
vmImage: 'ubuntu-latest'
- task: NodeTool@0
inputs:
versionSpec: '10.x'
displayName: 'Install Node.js'
- script: |
npm install
npm run build
displayName: 'npm install and build'
- task: CopyFiles@2
inputs:
Contents: 'build/**' # Pull the build directory (React)
TargetFolder: '$(Build.ArtifactStagingDirectory)'
- task: PublishBuildArtifacts@1
inputs:
pathtoPublish: $(Build.ArtifactStagingDirectory) # dist or build files
ArtifactName: 'www' # output artifact named www
- task: ArchiveFiles@2
inputs:
rootFolderOrFile: '$(Build.ArtifactStagingDirectory)/build/'
includeRootFolder: false
- task: AzureWebApp@1
inputs:
azureSubscription: 'ReactJSRecipeAppConnection'
appName: 'ReactJSRecipeAppSep232020'
package: '$(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip'
初始化从包运行失败
通常意味着zip文件已损坏或不可解压缩。请检查是否设置了应用程序服务->应用程序设置下的网站\u RUN\u FROM\u PACKAGE
标志
此外,尝试使用task
Azure App Service deploy
v4,而不是taskAzure Web App
v1。从与@Cece Dong的讨论开始,以下是最终对我有效的方法
trigger:
- master
pool:
vmImage: 'ubuntu-latest'
steps:
- task: NodeTool@0
inputs:
versionSpec: '10.x'
displayName: 'Install Node.js'
- script: |
npm install
npm run build
displayName: 'npm install and build'
- task: CopyFiles@2
inputs:
Contents: 'build/**' # Pull the build directory (React)
TargetFolder: '$(Build.ArtifactStagingDirectory)'
- task: PublishBuildArtifacts@1
inputs:
pathtoPublish: $(Build.ArtifactStagingDirectory) # dist or build files
ArtifactName: 'www' # output artifact named www
- task: ArchiveFiles@2
inputs:
rootFolderOrFile: '$(Build.ArtifactStagingDirectory)/build/'
includeRootFolder: false
- task: AzureRMWebAppDeployment@4
inputs:
appType: webApp
azureSubscription: 'RandomStuffReactJSConnection'
WebAppName: 'randomstuffreactjsappsept24'
package: '$(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip'
我可以确认,上述情况不再需要第二个触发器才能正确部署
具体来说,使用'AzureRMWebAppDeployment@4'是什么解决了最初的问题。可能超时了?比如安装一些依赖项,安装完成,但是安装超时,然后第二次安装不需要这样做,因此,没有超时我真的不这么认为。这周我肯定部署了六个站点。每一次情况都是持续不断的。我不敢相信我创建的每个网站每次都超时了。这些文件根本不进入wwwroot文件夹。我认为,在管道中的某个地方,配置文件没有正确创建。这可能是azure devops的工作方式。但是为什么它会在第二次工作呢?这就是我希望找到的:)现在,我只是在触发第二次部署,每次都是为了克服这个问题。代码YAML pipeline没有任何更改。@Jay请与您共享YAML pipeline,并将变量system.debug设置为true以获取详细日志。如果包已损坏,为什么同一应用程序的相同YAML配置在第二次部署时可以正常工作?我没有在这些部署之间接触应用程序设置,也没有对代码进行任何更改。我所做的就是在项目中的任何地方添加评论行,触发第二次立即部署。我将尝试Azure应用程序服务部署,看看是否获得更好的结果:)你的问题进展如何?Cece,你好。我本周要参加这个活动。为了测试这个解决方案,我将投入至少几个小时。请期待本周末的更新。目前,我们只需触发第二次部署(最多需要几秒钟)就可以进行管理,并且进展良好。今天我已经安排了时间进行调查。请期待几小时后我的更新。