使用circleci config.yml的Azure应用程序服务插槽和交换部署
使用circleci config.yml部署Azure应用程序服务插槽使用circleci config.yml的Azure应用程序服务插槽和交换部署,azure,web-applications,swap,circleci,slot,Azure,Web Applications,Swap,Circleci,Slot,使用circleci config.yml部署Azure应用程序服务插槽 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
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应用程序服务的生产插槽,但我想先部署到阶段插槽,然后进行交换
下面的文件工作正常,但需要一些配置更改,以便我能够部署到后台插槽,然后将插槽交换到生产插槽
使用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
版本:2.1
工作:
建造:
码头工人:
-图:circleci/节点:10.16.3
步骤:
##获取所有发布标签
-结帐
-运行:
名称:使用Npm安装Node.js依赖项
命令:npm install
-运行:
名称:测试
命令:CI=真实的npm运行覆盖率
开发人员部署:
机器:对
步骤:
-结帐
-运行:
名称:创建/更新基础结构
命令:|
docker登录-u$REGISTRY\u UN-p$REGISTRY\u PW$REGISTRY\u服务器
docker run--rm-it-e TF\u VAR\u repo\u branch=$CIRCLE\u branch-e vaultkey=$VAULT\u KEY-v`pwd`:/dp/config dockrimage/dpdeployer:beta-1.0.dp.yaml
工作流程:
版本:2
生成和测试发布:
工作:
-建造
#-按住:#Hmmm,这可能是查看以下内容的好链接:
但是,我认为这取决于您希望如何将代码部署到Azure应用程序服务。有很多不同的方法可以做到这一点。检查您的配置,您已经在使用Docker。此链接介绍将容器部署为Azure应用程序服务的步骤。
其要点似乎是,您需要配置您的WebApp,以从每个Azure应用程序插槽的docker注册表中提取
然后在成功构建之后,让circleci将docker映像推/标记到该注册表。然后Azure应用程序服务将启动应用程序的新版本
为了在Azure应用程序服务插槽之间切换,您可以将circleci配置推送到不同的docker注册表图像标记。这需要使用稍微不同的配置设置每个Azure应用程序服务槽。例如
# 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部署应用程序