如何在 Linux Azure 应用服务上安装数据包
How to install packet on Linux Azure App Service
我想 运行 我的 .net 5 应用程序在 Linux 具有特定库(例如 ibnss3-dev)的应用程序服务上。
我有构建管道:
trigger:
- main
pool:
vmImage: ubuntu-20.04
variables:
buildConfiguration: 'Release'
wwwrootDir: 'Web/wwwroot'
dotnetSdkVersion: '5.0.x'
- script: |
sudo apt-get update
sudo apt-get install -y libnss3-dev
displayName: 'Dep install'
steps:
- task: UseDotNet@2
displayName: 'Use .NET Core SDK $(dotnetSdkVersion)'
inputs:
version: '$(dotnetSdkVersion)'
- script: 'echo "$(Build.DefinitionName), $(Build.BuildId), $(Build.BuildNumber)" > buildinfo.txt'
displayName: 'Write build info'
workingDirectory: $(wwwrootDir)
- task: DotNetCoreCLI@2
displayName: 'Restore project dependencies'
inputs:
command: 'restore'
projects: '**/Web.csproj'
- task: DotNetCoreCLI@2
displayName: 'Build the project - $(buildConfiguration)'
inputs:
command: 'build'
arguments: '--no-restore --configuration $(buildConfiguration)'
projects: '**/Web.csproj'
- task: DotNetCoreCLI@2
displayName: 'Publish the project - $(buildConfiguration)'
inputs:
command: 'publish'
projects: '**/Web.csproj'
publishWebProjects: false
arguments: '--no-build --configuration Release --output $(Build.ArtifactStagingDirectory)/Release'
zipAfterPublish: true
- task: PublishBuildArtifacts@1
displayName: 'Publish Artifact: drop'
condition: succeeded()
以及部署 Azure 应用服务的版本(任务版本 4)
我应该怎么做?我尝试了以下解决方案,但没有一个有效:
- 使用 sudo 发布 Post 部署操作(kuduPostDeploymentScript.sh:sudo:未找到)
- 发布 Post 没有 sudo 的部署操作([错误]E:列表目录 /var/lib/apt/lists/partial 丢失。- 获取(13:权限被拒绝))
- 在管道中添加脚本步骤
我可以运行通过 ssh 手动安装命令,但我正在寻找一种自动化方法。
apt-get update
apt-get install -y libnss3-dev
请检查这个问题。正如您已经发现的那样,您应该将命令 "dotnet web.dll"
替换为首先安装依赖项的 sh 脚本,然后将 运行 您的 web.dll 替换为 dotnet CLI。
我想 运行 我的 .net 5 应用程序在 Linux 具有特定库(例如 ibnss3-dev)的应用程序服务上。
我有构建管道:
trigger:
- main
pool:
vmImage: ubuntu-20.04
variables:
buildConfiguration: 'Release'
wwwrootDir: 'Web/wwwroot'
dotnetSdkVersion: '5.0.x'
- script: |
sudo apt-get update
sudo apt-get install -y libnss3-dev
displayName: 'Dep install'
steps:
- task: UseDotNet@2
displayName: 'Use .NET Core SDK $(dotnetSdkVersion)'
inputs:
version: '$(dotnetSdkVersion)'
- script: 'echo "$(Build.DefinitionName), $(Build.BuildId), $(Build.BuildNumber)" > buildinfo.txt'
displayName: 'Write build info'
workingDirectory: $(wwwrootDir)
- task: DotNetCoreCLI@2
displayName: 'Restore project dependencies'
inputs:
command: 'restore'
projects: '**/Web.csproj'
- task: DotNetCoreCLI@2
displayName: 'Build the project - $(buildConfiguration)'
inputs:
command: 'build'
arguments: '--no-restore --configuration $(buildConfiguration)'
projects: '**/Web.csproj'
- task: DotNetCoreCLI@2
displayName: 'Publish the project - $(buildConfiguration)'
inputs:
command: 'publish'
projects: '**/Web.csproj'
publishWebProjects: false
arguments: '--no-build --configuration Release --output $(Build.ArtifactStagingDirectory)/Release'
zipAfterPublish: true
- task: PublishBuildArtifacts@1
displayName: 'Publish Artifact: drop'
condition: succeeded()
以及部署 Azure 应用服务的版本(任务版本 4)
我应该怎么做?我尝试了以下解决方案,但没有一个有效:
- 使用 sudo 发布 Post 部署操作(kuduPostDeploymentScript.sh:sudo:未找到)
- 发布 Post 没有 sudo 的部署操作([错误]E:列表目录 /var/lib/apt/lists/partial 丢失。- 获取(13:权限被拒绝))
- 在管道中添加脚本步骤
我可以运行通过 ssh 手动安装命令,但我正在寻找一种自动化方法。
apt-get update
apt-get install -y libnss3-dev
请检查这个问题。正如您已经发现的那样,您应该将命令 "dotnet web.dll"
替换为首先安装依赖项的 sh 脚本,然后将 运行 您的 web.dll 替换为 dotnet CLI。