使用circleci config.yml的Azure App服务插槽和交换部署

问题描述 投票:0回答:1

使用circleci config.yml部署Azure应用服务插槽

需要添加步骤以部署到生产插槽或登台插槽,然后修改配置以交换部署

描述:默认情况下,当我运行此配置文件时,它将部署到azure应用服务的生产插槽,但我想先部署到暂存插槽,然后再进行交换。

下面的文件工作正常,但需要进行一些配置更改,以便我应该能够部署到舞台插槽,然后将插槽交换到生产插槽。

使用Circleci config.yml,下面是我的config.yml

version: 2.1

jobs:
  build:
    docker:
        - image: circleci/node:10.16.3
    steps:

      ## Fetch all release tags
      - checkout
      - run:
          name: Install Node.js dependencies with Npm
          command: npm install
      - run:
          name: Test
          command: CI=true npm run coverage



  dev-deploy:
    machine: true
    steps:
      - checkout
      - run:

          name: create / update infrastructure
          command: |

            docker login -u $REGISTRY_UN -p $REGISTRY_PW $REGISTRY_SERVER

            docker run --rm -it -e TF_VAR_repo_branch=$CIRCLE_BRANCH -e vaultkey=$VAULT_KEY -v `pwd`:/dp/config  dockerimage/dpdeployer:beta-1.0  .dp.yaml



workflows:
  version: 2
  build_and_test_publish:
    jobs:
       - build
      #  - hold: # <<< A job that will require manual approval in the CircleCI web application.
      #      type: approval # <<< This key-value pair will set your workflow to a status of "On Hold"
      #      requires: # We only run the "hold" job when test2 has succeeded
      #       - build

       - dev-deploy:
          requires:

            - build

          filters:
            branches: 
              only : feature/appservice

azure web-applications swap circleci slot
1个回答
0
投票
嗯,这可能是查看的不错链接:Deploy to Azure from CircleCI

但是,我认为这取决于您要如何将代码部署到Azure App Service。有很多不同的方法可以做到这一点。检查配置,您已经在使用Docker。此链接https://docs.microsoft.com/en-us/azure/app-service/containers/tutorial-custom-docker-image讨论将容器部署为Azure应用服务的步骤。要点似乎是您需要将WebApp配置为从Docker注册表中提取[[每个Azure应用程序插槽。

然后在成功构建后,让circleci将Docker映像推送/标记到该注册表。然后,Azure App Service将启动该应用程序的新版本。

要在Azure App服务插槽之间跳转,您可以将circleci配置推送到不同的Docker注册表映像标签。这将需要使用略有不同的配置来设置每个Azure App Service插槽。例如...

# Dev az webapp config container set --name <app-name> --resource-group <rg> --docker-custom-image-name <registry-name>/mydockerimage:$VERSION_FOR_DEV ... # Staging az webapp config container set --name <app-name> --resource-group <rg> --docker-custom-image-name <registry-name>/mydockerimage:$VERSION_FOR_STAGE ...

在circleCI配置中,当您在dev,stage和production作业之间设置管道时。开发和阶段作业将为您执行docker push或标记。生产工作会为您完成最后一步的交换。像这样的东西...

prod-deploy:
   steps:
     - run:
        name: swap staging and product slots
        command: az webapp deployment slot swap  -g MyResourceGroup -n MyUniqueApp --slot staging --target-slot production

另请参见:https://docs.microsoft.com/en-us/cli/azure/webapp/deployment/slot?view=azure-cli-latest#az-webapp-deployment-slot-swap

希望这会有所帮助。而且我没有误会你的问题。 🤞
© www.soinside.com 2019 - 2024. All rights reserved.