无法在 Azure Devops 部署组(自托管)上 运行 ASP.NET Core Web API
Cannot run ASP.NET Core Web API on Azure Devops deployment group (self-hosted)
-
continuous-deployment
-
azure-devops
-
azure-pipelines
-
azure-pipelines-release-pipeline
-
asp.net-core-webapi
我正在使用 azure devops 开发一个简单的部署管道。我在 自托管 ubuntu 部署组上创建了部署管道 运行ning。
管道如下所示:
- 从 CI 管道下载工件(使用 dotnet publish 创建)
- 停止运行部署
- 解压 ASP.NET Core Web API 到部署目录
- 运行 新部署
dotnet MyApp.dll
前两个步骤按预期工作。但是,当 dotnet My App.dll
命令为 运行 时,处理 运行s 10 秒,最后打印以下“错误”消息:
The STDIO streams did not close within 10 seconds of the exit event from process '/usr/bin/bash'. This may indicate a child process inherited the STDIO streams and has not yet exited.
尽管消息和应用未 运行ning,但部署任务成功。我尝试通过使用 nohup &
并重新定位命令输出来解决此功能。经过一些研究,我发现管道代理启动的所有进程在代理工作完成后都会停止 - 这意味着这种行为是有意的,我对 azure deployments/agents 的理解是错误的。
我如何使用 azure devops 管道在我自己的 ubuntu 机器上以自动化方式 部署和 运行 我的应用程序?
How do I deploy and run my app in an automated way on my own ubuntu machine using azure devops pipelines?
你已经走对了。
当管道结束时,管道中启动的所有进程都将 finished/clean 在“完成作业”步骤中启动。
如果您不想关闭进程,请尝试设置变量 Process.clean= false
以阻止“完成作业”步骤终止所有进程。
但下次创建新管道时,需要先关闭应用再启动。
continuous-deployment
azure-devops
azure-pipelines
azure-pipelines-release-pipeline
asp.net-core-webapi
我正在使用 azure devops 开发一个简单的部署管道。我在 自托管 ubuntu 部署组上创建了部署管道 运行ning。 管道如下所示:
- 从 CI 管道下载工件(使用 dotnet publish 创建)
- 停止运行部署
- 解压 ASP.NET Core Web API 到部署目录
- 运行 新部署
dotnet MyApp.dll
前两个步骤按预期工作。但是,当 dotnet My App.dll
命令为 运行 时,处理 运行s 10 秒,最后打印以下“错误”消息:
The STDIO streams did not close within 10 seconds of the exit event from process '/usr/bin/bash'. This may indicate a child process inherited the STDIO streams and has not yet exited.
尽管消息和应用未 运行ning,但部署任务成功。我尝试通过使用 nohup &
并重新定位命令输出来解决此功能。经过一些研究,我发现管道代理启动的所有进程在代理工作完成后都会停止 - 这意味着这种行为是有意的,我对 azure deployments/agents 的理解是错误的。
我如何使用 azure devops 管道在我自己的 ubuntu 机器上以自动化方式 部署和 运行 我的应用程序?
How do I deploy and run my app in an automated way on my own ubuntu machine using azure devops pipelines?
你已经走对了。
当管道结束时,管道中启动的所有进程都将 finished/clean 在“完成作业”步骤中启动。
如果您不想关闭进程,请尝试设置变量 Process.clean= false
以阻止“完成作业”步骤终止所有进程。
但下次创建新管道时,需要先关闭应用再启动。