1.为什么用第三方,而不自建,有哪些第三方,最后实现的效果

  a.尝试过自建,并成功了,但是很麻烦,要敲一堆命令,无法达到全自动化部署的要求。

  b.自建,就算用第三方的镜像包,感觉下载还是不快,不知道为什么。

  哪些:各大云服务好像都已经有了,因为我用的码云做的项目托管,支持码云或者自定义git地址的,只有华为云和daocloud,最后选择的是daocloud。

  效果:配置好后,只用选择手动触发,填入分支(如:master),然后几分钟后,2台正式服务器,1台测试服务器,自动部署成功,全程不用动其他位置。

2.第一步接入私有的git地址

  (源码安全问题不在讨论范围之内)

  注意,因为是私有项目,请使用ssh协议的地址,如:git@gitee.com:xxx/xxx.git

添加好这些数据后保存。

  在项目列表中,就可以看见你添加的数据了

 

  点击查看详情

选择流程定义->使用Submodules->复制图中的SSH Keys

去到私有项目中添加公钥,复制进去就行了。这样,就完成了。

3.构建镜像

  首先,你需要编写dockerfile,当然.net core很简单,直接使用vs 2017添加docker支持就行了。

  添加完毕后

  点击默认构建任务

填对对应的dockerfile的路径(如果实在填不对,可以复制dockerfile出来,然后使用云端dockerfile)

这是我的dockerfile

FROM microsoft/aspnetcore:2.0 AS base
WORKDIR /app
EXPOSE 80 #设置时区
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN echo 'Asia/Shanghai' >/etc/timezone FROM microsoft/aspnetcore-build:2.0 AS build
WORKDIR /src
COPY *.sln ./
COPY Edu.Api/Edu.Api.csproj Edu.Api/
COPY Edu.Application.Model/Edu.Application.Model.csproj Edu.Application.Model/
COPY Edu.Domain/Edu.Domain.csproj Edu.Domain/
COPY EStart.Infrastructure/EStart.Infrastructure.csproj EStart.Infrastructure/
COPY Edu.Application/Edu.Application.csproj Edu.Application/
COPY EStart.DataBase.EF/EStart.DataBase.EF.csproj EStart.DataBase.EF/
COPY EStart.Interface/EStart.Interface.csproj EStart.Interface/
COPY EStart.DataBase.Event.Domian/EStart.DataBase.Event.Domian.csproj EStart.DataBase.Event.Domian/
COPY Edu.BootStrapper/Edu.BootStrapper.csproj Edu.BootStrapper/
RUN dotnet restore
COPY . .
WORKDIR /src/Edu.Api
RUN dotnet build -c Release -o /app FROM build AS publish
RUN dotnet publish -c Release -o /app FROM base AS final
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "Edu.Api.dll"]

  给大家参考一下。

  然后选择右上角的手动触发,填入Git分支的名字,如master,执行就行了。

这个就是执行成功的样子,如果报错,自行查看日志。

4.部署镜像,使用daocloud添加主机后部署

  首先,如果你觉得安全性有问题,那么,可以找到镜像仓库,有仓库镜像的地址

使用这种方式拉取镜像部署。

当然,我们选择的是直接讲主机连接上daocloud使用。

添加主机的方式,在集群里添加,我这里就不做演示了。

首先:部署最新版本

容器端口默认80不变,主机端口填写你要访问的端口,因为我的是无状态服务,所以不用添加Volumes,自定义变量说一下,正式环境什么都不用填

测试环境需要填写环境变量

ASPNETCORE_ENVIRONMENT  Deveplopment

然后立即部署,即可。当然,服务器先要安装docker

使用第三方镜像加速:

curl -sSL https://get.daocloud.io/docker | sh

然后访问对应的外网+端口即可

然后打开每次镜像更新就自动部署

这是目前项目的部署情况,2台API服务做了负载均衡(nginx),一台测试服务,每次更新最新代码,填完master,自动发布到这3台服务器。非常方便

End:感想

从公司说要重写原有的系统,到技术选型(前:react,后:.net core),然后4个人(2前2后)编码,旧数据导入,内测,到现在上线,从头到尾,一步一个脚印的完成了开发目标。收获满满。总算可以松一口气了

使用第三方容器服务,自动化部署.Net Core的更多相关文章

  1. 基于云原生DevOps服务自动化部署前端项目学习总结

    本文主要以部署前端Vue项目为例,讲述了如何基于云原生DevOps服务自动化部署前端项目~从开发完成到线上环境,我们只需提交代码即可~ 一.引言 作为一名开发人员,日常工作中我们除了需要负责代码的开发 ...

  2. 阿里云容器服务与ASP.NET Core部署:用 docker secrets 保存 appsettings.Production.json

    这是我们使用阿里云容器服务基于 docker 容器部署 asp.net core 应用遇到的另一个问题 —— 如果将包含敏感信息的应用配置文件 appsettings.Production.json ...

  3. Linux文档整理之【Jenkins+Docker自动化部署.Net Core】

    这次整理的文档是Jenkins+Docker实现自动化部署,很早之前就写的,今天有时间就搬到博客园做个记录. Jenkins是基于Java开发的一种持续集成工具,主要用于持续.自动的构建/测试软件等相 ...

  4. Docker容器技术-自动化部署

    一.用Chef自动化部署Docker 1.为什么需要自动化部署? Docker引擎需要配置很多参数(cgroups.内存.CPU.文件系统等) 识别Docker容器运行在哪个宿主机上 耗时且容易出错, ...

  5. 最详细之教你Jenkins+github自动化部署.Net Core程序到Docker

    环境 centos7.9,.NET5 一.Jenkins搭建 1)下载Jenkins的war包 在\home目录建一个jenkins目录放jenkins的包 #进入\home目录 cd \home # ...

  6. 品尝阿里云容器服务:初步尝试ASP.NET Core Web API站点的Docker自动化部署

    部署场景是这样的,我们基于 ASP.NET Core 2.0 Preview 1 开发了一个用于管理缓存的 Web API ,想通过阿里云容器服务基于 Docker 部署为内网服务. 在这篇博文中分享 ...

  7. Knative 实践:从源代码到服务的自动化部署

    通过之前的文章,相信大家已经熟悉了 Serving.Eventing 以及 Tekton.那么在实际使用中,我们往往会遇到一些复杂的场景,这时候就需要各个组件之间进行协作处理.例如我们提交源代码之后是 ...

  8. [持续集成]Jenkins 自动化部署 Maven 工程

    一.Jenkins 持续部署原理图 基础服务: 1 SVN 服务 SVN是Subversion的简称,是一个开放源代码的版本控制系统.说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的 ...

  9. Knative 应用在阿里云容器服务上的最佳实践

    作者|元毅 阿里云智能事业群高级开发工程师 相信通过前面几个章节的内容,大家对 Knative 有了初步的体感,那么在云原生时代如何在云上玩转 Knative?本篇内容就给你带来了 Knative 应 ...

随机推荐

  1. UVA548

    题意: 根据二叉树中序和后序建立二叉树,从根结点开始计算和到叶子结点,输出总和最小的叶子结点,如果有俩个和一样大,输出叶子结点最小的 AC:80ms #include<stdio.h> # ...

  2. MVC,MVP 和 MVVM 模式如何选择?

    转摘:http://www.linuxidc.com/Linux/2015-10/124622.htm 前言 做客户端开发.前端开发对MVC.MVP.MVVM这些名词不了解也应该大致听过,都是为了解决 ...

  3. UnicodeEncodeError: 'gbk' codec can't encode character '\xbb' in position

    python实现爬虫遇到编码问题: error:UnicodeEncodeError: 'gbk' codec can't encode character '\xXX' in position XX ...

  4. centos7修改ssh默认登陆端口号

    参考网站; https://blog.csdn.net/ausboyue/article/details/53691953 第一步:修改SSH配置文件(注意是sshd_config而不是ssh_con ...

  5. Ceph实战入门系列(一)——三节点Ceph集群的安装与部署

    安装文档:http://blog.csdn.net/u014139942/article/details/53639124

  6. 8. myeclipse10 svn插件安装

    1.在myeclipse安装目录下找到dropins文件夹,并在下面创建svn文件夹 2. 解压site-1.8.22.zip 3. 4. 5. 6.

  7. icil 参考docker

    @All 有不知道怎么用docker发布项目的,请参考 http://192.168.18.224:8888/svn/Enterprise/site/docker/overview of docker ...

  8. Celery ---- 分布式队列神器 ---- 入门

    原文:http://python.jobbole.com/87238/ 参考:https://zhuanlan.zhihu.com/p/22304455 Celery 是什么? Celery 是一个由 ...

  9. jqGrid 使用案例及笔记

    jqGrid 是一个用来显示网格数据的jQuery插件,通过使用jqGrid可以轻松实现前端页面与后台数据的ajax异步通信. 一.要引用的文件 要使用jqGrid,首先页面上要引入如下css与js文 ...

  10. spring cloud DashBoard

    1 依赖 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring ...