Azure Linux 应用服务:从 Devops 管道部署后安装包

Azure Linux App Service : Installing packages after deploy from Devops pipeline

我目前正在 Azure Devops 中设置 CI/CD 管道,以在 linux 托管应用服务(而非虚拟机)上部署 NodeJS 应用。

我的构建和部署都很顺利,但我需要确保在部署应用程序后在环境中安装了一些包。

问题是:无论我在部署后创建什么 apt-get 脚本,我都必须 运行 然后手动才能使它们真正生效。不过,在管道日志中,它们似乎已被执行。

这是我负责部署的 yaml 代码部分,我是不是漏掉了什么?

- stage: Deploy
  displayName: Deploy stage
  dependsOn: Build
  condition: succeeded()
  jobs:
  - deployment: Deploy
    displayName: Deploy
    environment: $(environmentName)
    pool:
      vmImage: $(vmImageName)
    workspace:
      clean: all
    strategy:
      runOnce:
        deploy:
          steps:
          - task: AzureWebApp@1
            displayName: 'Azure Web App Deploy:'
            inputs:
              azureSubscription: $(azureSubscription)
              appType: webAppLinux
              appName: $(webAppName)
              runtimeStack: 'NODE|16-lts'
              package: $(Pipeline.Workspace)/drop/drop$(Build.BuildNumber).zip
              startUpCommand: 'pm2 start index.js --no-daemon'
        on:
         success:
           steps:
           - script: sudo apt-get update
             displayName: apt update
           - script: sudo apt-get -y [SOME LIBS] 
             displayName: try install dependencies

谢谢!

目前,我在每次部署后手动 运行 使用“startup.sh”文件。不过 docker 稍后会通过