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

Tho*_*tin 5 linux yaml azure devops azure-web-app-service

我目前正在 Azure Devops 中设置 CI/CD 管道,以在 Linux 托管应用程序服务(而不是 VM)上部署 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
Run Code Online (Sandbox Code Playgroud)

谢谢 !

Tho*_*tin 0

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