将依赖项添加到默认 Github 操作脚本

Adding dependencies to default Github Actions script

我在 Azure 上有一个 Python Web 应用程序,它通过 Github 操作部署。我使用由 Azure 部署中心创建的默认部署脚本(完整脚本如下所示)。为了让我的应用程序正常工作,我必须在每次部署后通过 SSH 连接到部署机器并手动激活虚拟环境并安装无法通过 pip 获得的包。

有没有办法在 Azure 为我创建的预生成部署脚本中包含手动安装?

这些是我在每次部署后通过 SSH 连接到机器时必须 运行 的手动命令...

source env/bin/activate
sudo apt-get install build-essential python3-dev python3-pip python3-setuptools python3-wheel python3-cffi libcairo2 libpango-1.0-0 libpangocairo-1.0-0 libgdk-pixbuf2.0-0 libffi-dev shared-mime-info

这是我目前使用的部署脚本...

name: Build and deploy Python app to Azure Web App

on:
  push:
branches:
  - master

jobs:
  build-and-deploy:
  runs-on: ubuntu-latest

  steps:
  - uses: actions/checkout@master

  - name: Set up Python version
    uses: actions/setup-python@v1
    with:
      python-version: '3.6'

  - name: Build using AppService-Build
    uses: azure/appservice-build@v2
    with:
      platform: python
      platform-version: '3.6'

  - name: 'Deploy to Azure Web App'
    uses: azure/webapps-deploy@v2
    with:
      app-name: {{applicationname}}
      slot-name: {{slotname}}
      publish-profile: ${{ secrets.AzureAppService_PublishProfile_HIDDEN }}

如果您确实需要向系统安装比默认安装更多的包,您需要创建自己的 docker 映像,将其发布到您的私有 Azure 注册表并将它们用作 in the example:

    - uses: azure/docker-login@v1
      with:
        login-server: contoso.azurecr.io
        username: ${{ secrets.REGISTRY_USERNAME }}
        password: ${{ secrets.REGISTRY_PASSWORD }}

    - run: |
        docker build . -t contoso.azurecr.io/nodejssampleapp:${{ github.sha }}
        docker push contoso.azurecr.io/nodejssampleapp:${{ github.sha }} 

    - uses: azure/webapps-deploy@v2
      with:
        app-name: 'node-rnc'
        publish-profile: ${{ secrets.azureWebAppPublishProfile }}
        images: 'contoso.azurecr.io/nodejssampleapp:${{ github.sha }}'