1.准备一个https://hub.docker.com账号,申请一个免费的镜像仓库(免费账户可以申请一个)

创建docker远程镜像库

2.新建一个mvc的项目

给这个项目加上Dockerfile文件(AzureDemo/AzureDemo/..中添加)

FROM dukecheng/aspnetcore:aspnetcore-runtime-2.2.
ARG source
WORKDIR /app
EXPOSE
COPY ${source:-obj/Docker/publish} .
ENTRYPOINT ["dotnet", "AzureDemo.dll"]

在sln同级添加三个文件
azure_build.sh

workspace=`pwd`
docker run --rm -v ~/.cache:/root/.cache -v ~/.config:/root/.config -v ~/.gnupg:/root/.gnupg -v ~/.local:/root/.local -v ~/.npm:/root/.npm -v `pwd`/SanBlog:/data digitallyseamless/nodejs-bower-grunt bash -c "bower install && npm install"
docker run --rm -v ~/.dotnet:/root/.dotnet -v ~/.nuget:/root/.nuget -v ${workspace}:/src --workdir /src dukecheng/aspnetcore:aspnetcore-sdk-2.2.-preview3- bash -c "dotnet restore ./AzureDemo.sln && rm -rf ./AzureDemo/AzureDemo/obj/Docker/publish && dotnet publish ./AzureDemo/AzureDemo.csproj -c Release -o ./obj/Docker/publish"

azuredemo.base.yml

# Docker image
# Build a Docker image to deploy, run, or push to a container registry.
# Add steps that use Docker Compose, tag images, push to a registry, run an image, and more:
# https://docs.microsoft.com/azure/devops/pipelines/languages/docker pool:
vmImage: 'Ubuntu 16.04' variables:
imageName: 'your-container-image-name:$(build.buildId)' steps:
- script: docker build -f Dockerfile -t $(imageName) .
displayName: 'docker build' azuredemo.base.yml
version: '' services:
azuredemoweb:
image: shitong/shitong:${IM_TAG-latest}
networks:
- appnet
volumes:
- /var/log:/var/log
- /data/azure:/app/data
redis:
image: redis
networks:
- appnet
ports:
- :
volumes:
- /data/redis:/data
- /var/log:/var/log
mongo:
image: mongo
volumes:
- /data/mongodb/db:/data/db
- /data/mongodb/backup:/data/backup
- /var/log:/var/log
networks:
- appnet
ports:
- :
networks:
appnet:

这块的azuredemoweb节点下的image:shitong/shitong:${IM_TAG-latest}

shitong/shitong就是我们第一步所建的hub.docker.com上的镜像文件库

azuredemo.Development.yml

version: ''

services:
azuredemoweb:
environment:
- ASPNETCORE_ENVIRONMENT=Development
ports:
- :

项目结构

3.准备Azure DevOps帐号 用来托管代码,使用pipeline自动打包docker镜像

https://dev.azure.com/

把我们第二步准备的项目push到Azure DevOps

该准备的都准备好了
接下来就是重点了

之后就会变成这样

下面会有四个步骤:

(1).还原nuget等依赖包 发布项目

(2).打包成docker镜像

(3).推送docker镜像到docker hub

(4).服务器pull docker镜像 远程部署 运行项目

cd /data/deploy/ && export IM_TAG=azuredemo_$(Build.BuildId)  && docker pull shitong/shitong:${IM_TAG} && docker-compose -f azuredemo.base.yml -f azuredemo.Development.yml config > docker-stack.yml && docker stack deploy --with-registry-auth -c docker-stack.yml myapp

最后保存

4.远程服务器

首先要在远程服务器安装docker
具体可以参考官网
https://docs.docker.com/install/linux/docker-ce/ubuntu/
这里安利一个教我docker的大佬的博客,可以查看/学习下基本的命令
https://www.52hhx.com/index/articleDetail/73
腾讯云的上机实验
https://cloud.tencent.com/developer/labs/search?keyword=docker

创建文件夹和azuredemo.base.yml,azuredemo.Develoment.yml

内容直接拷贝第一步项目里的
之后再把azuredemo.base.yml里的一些路径创建出来

最后在Azure DevOps测试

微软Azure DevOps自动化部署的更多相关文章

  1. 微软 Azure DevOps Server 2019 Update 1 (TFS 2019.1)

    1.概述 微软在2019年5月发布Azure DevOps Server 2019后不到2个月的时间里,就快速准备好了第一个升级包(2019 Update 1),并计划在几周后发布正式版本.也许你还没 ...

  2. 微软Azure DevOps 使用docker 持续集成 dotnet

    azure 环境设置 登录azure 地址 https://dev.azure.com/ 使用微软账号就可以进行登录. 点击右上角新建项目 项目信息,尽量用小写 创建项目 修改默认的dockerfil ...

  3. Azure DevOps Pipelines部署.Net Core 应用到Kubernetes

    一.    先决条件 1.Azure Repos Git/Git和项目上传 把本地的Net Core项目上传至Azure Repos Git/Git 2.Docker Registry Service ...

  4. Azure Terraform(七)利用Azure DevOps 实现自动化部署基础资源(补充)

    一,引言 之前一篇文章有讲解到利用 利用Azure DevOps 实现自动化部署基础资源,当时 TF 代码没有针对 Azure 各个资源的封装,所有的资源代码全部写在一个 main.tf 文件中.然后 ...

  5. Azure DevOps(二)利用Azure DevOps Pipeline 构建基础设施资源

    一,引言 上一篇文章记录了利用 Azure DevOps 跨云进行构建 Docker images,并且将构建好的 Docker Images 推送到 AWS 的 ECR 中.今天我们继续讲解 Azu ...

  6. 如何利用Azure DevOps快速实现自动化构建、测试、打包及部署

    前两天有朋友问我,微软的Azure好用吗,适不适合国人的使用习惯,我就跟他讲了下,Azue很好用,这也是为什么微软云营收一直涨涨涨的原因,基本可以再1个小时内实现自动化构建.打包以及部署到Azure服 ...

  7. Azure Terraform(九)GitHub Actions 实现 Infra 资源的自动化部署

    思路浅析 使用 Terraform Code 部署 Azure 基础设施资源是特别受欢迎的,我曾经有写文章分享过利用 Azure DevOps 自动部署 Terraform Code 所描述的 Azu ...

  8. Azure DevOps Server 2019 (TFS)安装教程

    概述 Azure DevOps Server 2019 (之前的名称为TFS),作为微软Azure DevOps 的企业私有(on-premises)服务器,是一个为开发团队提供软件协作开发管理的服务 ...

  9. Azure Devops: COPY failed: stat /var/lib/docker/tmp/docker-builder268095359/xxxxxxx.csproj no such file or directory

    在Azure Devops中部署docker镜像时,  出现COPY failed: stat /var/lib/docker/tmp/docker-builder268095359/xxxxxxx. ...

随机推荐

  1. apache工作模式worker以及prefork的切换

    apache比较常用的工作模式有worker以及prefork两种方式. 如果在编译时候不指定,系统默认的是prefork模式:如果需要换成worker模式,需要在编译的时候带上编译参数:--with ...

  2. 解决Android版Firefox字体显示过大的问题

    在用Android版Firefox查看博客园首页发现中间区域的字体显示非常大,开始以为是首页css对移动版浏览器支持不好. 后来发现原来这是Firefox for Android的知名bug: Tha ...

  3. 安装Ruby、Sass在WebStrom添加Watcher实现编辑scss文件时自动生成.map和压缩后的.css文件

    前言 这段时间一直在看Bootstrap,V3官方直接提供了Less版本的源码,就先将Less学完了,很简单的语法,学习写Demo都是在Webstorm里写的,配置了Watcher自动编译(详见< ...

  4. 004-ant design -dispatch、request、fetch

    一.dispatch 函数 typedispatch = (a: Action) => Action dispatching function 是一个用于触发 action 的函数,action ...

  5. Spring boot 集成ckeditor

    1:下载ckeditor  4.4.2 full package ,官网没有显示, 需要在最新版本的ckeditor download右键,复制链接, 输入到导航栏,将版本号改为自己想要的版本号. h ...

  6. 一些动态规划问题的java实现

    从上往下推公式,从下往上求解值. 一:矩阵链乘法,最小括号化方案,动态规划方程. 0        如果i=j m[i,j]  ={ min[i,k]+m[k+1,j]+pi-1pkpj        ...

  7. C++ builder 书籍推荐

    china-pub网上书店c++builder书籍专区,本专区专门为c++builder学习者提供目前最为畅销实用的c++builder技术书籍,通过对本专区c++builder书籍的了解,让您学习c ...

  8. 2017-2018 ACM-ICPC Asia East Continent League Final (ECL-Final 2017) Solution

    A:Chat Group 题意:给出一个n, k 计算C(n, k) -> C(n,n) 的和 思路:k只有1e5 反过来想,用总的(2^ n) 减去 C(n, 0) -> C(n, k ...

  9. Learning to Rank之Ranking SVM 简介

    排序一直是信息检索的核心问题之一,Learning to Rank(简称LTR)用机器学习的思想来解决排序问题(关于Learning to Rank的简介请见我的博文Learning to Rank简 ...

  10. Eclipse配置tomcat8.5.7报错:The Apache Tomcat installation at this directory is version 8.5.27. A Tomcat 8.0 installation is...

    Eclipse配置tomcat8.5.7报错:The Apache Tomcat installation at this directory is version 8.5.27. A Tomcat ...