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. swoole--PHP的异步、并行、高性能网络通信引擎

    swoole目前已被多家移动互联网.物联网.网络游戏.手机游戏企业使用,替代了C++.Java等复杂编程语言来实现网络服务器程序. 使用PHP+Swoole,开发效率可以大大提升.官方提供了基于swo ...

  2. [ASP.NET 大牛之路]03 - C#高级知识点概要(2) - 线程和并发

    目录: 1.线程简单使用 2.并发和异步的区别 3.并发控制—锁 4.线程的通信机制 5.线程池中的线程 6.案例:支持并发的异步日志组件 7.结束 1.线程的简单使用---------------- ...

  3. C#实现像Git那样计算Hash值

    从Git Tip of the Week: Objects一文中得知,Git是这样计算提交内容的Hash值的: Hash算法用的是SHA1 计算前,会在内容前面添加"blob 内容长度\0& ...

  4. Python3、Unicode、UTF-8、编码

    text = u'你好,今天天气不错' text print(text) text = '\u4f60\u597d\uff0c\u4eca\u5929\u5929\u6c14\u4e0d\u9519' ...

  5. django haystack

    # coding=utf-8 from haystack import indexes from yw_asset.models import * class AssetIndex(indexes.S ...

  6. 【开发者笔记】C#连接mysql问题记录

    1.概述:C#在调用mysql.data.dll连接本地数据库时报错,连接远程Linux服务器上的mysql服务器正常 2.报错记录,当前连接字符串 <add key="dbStrin ...

  7. 【开发者笔记】c# 调用java代码

    一.需求阐述 java实现的一个算法,想翻译成c#,翻译代码之后发现有bug,于是不调试了.直接将jar打包成dll拿来用. 二.原理说明 jar可以通过ikvmc工具打包成dll,然后在项目中引入该 ...

  8. (转)SpringBoot非官方教程 | 第十二篇:springboot集成apidoc

    首先声明下,apidoc是基于注释来生成文档的,它不基于任何框架,而且支持大多数编程语言,为了springboot系列的完整性,所以标了个题. 一.apidoc简介 apidoc通过在你代码的注释来生 ...

  9. webdriver js点击无法点击的元素

    原文地址https://blog.csdn.net/galen2016/article/details/56847545 [WebDriver]调用JavaScript 一.WebDriver 提供了 ...

  10. chrome 关闭安全模式

    chrome.exe --disable-web-security --user-data-dir