首页服务器Web服务器 详解给Ocelot做一个Docker镜像

详解给Ocelot做一个Docker镜像

写在前面 在微服务架构中,ApiGateway起到了承前启后,不仅可以根据客户端进行分类,也可以根据功能业务进行分类,而且对于服务调用服务也起到了很好的接口作用。目前在各个云端中…

写在前面

在微服务架构中,ApiGateway起到了承前启后,不仅可以根据客户端进行分类,也可以根据功能业务进行分类,而且对于服务调用服务也起到了很好的接口作用。目前在各个云端中,基本上都提供了ApiGateway的功能(付费功能),通过SDK或者在线进行配置。

在Java体系中有Zuul和Kong都是比较著名的。

在.Net体系中,目前比较热门的(短短1年时间已经1000+stars了)

Ocelot,这是一个非常优秀的基于 .Net Core的Api网关开源项目,我们的在队长也参与了开发,过年前又被纳入了微软eShop微服务架构Demo项目中,作为其Api网关,目前正在整合中,有兴趣可以关注项目中新的的Ocelot Branch。

基本的使用方式在园中已有博主写过了,不过内容是之前版本的,新版本稍微有点不同,还是建议大家看文档。通过文档我们了解,Ocelot是通过一个json文件进行配置的,所以在使用的时候我们只需要修改这个json文件就可以了,每次为不同的ApiGateway创建不同的项目比较麻烦,So,今天来讲下如何把Ocelot做成一个Docker镜像,这样使用的时候只需要输入一条docker指令即可。

今天的Dockerfile我是Fork了Ocelot项目后在自己的Branch中弄的,直接是项目引用,这只是范例而已,你可以重新创建一个专门的项目,通过Nuget管理添加对Ocelot的引用。

创建Dockerfile代码

Dockerfile只是一个文本文件,它每一行代表Docker镜像的一个layer,每一行由命令加参数组成,我们通过编写简单的命令,就能使用docker工具生成docker镜像。
首先你要在项目中创建Dockerfile,请记住,把你的Dockerfile放在sln目录下,因为Dockerfile文件的build环境是按照你这个文件的目录来的,切记,博主之前花了N天才发现这个弱智的问题。docker command对文件名对大小写敏感。

直接上代码:

FROM microsoft/aspnetcore:2.0 AS base #基于asp.net core 2.0镜像WORKDIR /appEXPOSE 80# 先使用asp.net core build镜像,然后复制项目到/src目录FROM microsoft/aspnetcore-build:2.0 AS buildWORKDIR /srcCOPY *.sln ./COPY demos/ApiGateway.Web/ApiGateway.Web.csproj demos/ApiGateway.Web/COPY src/Ocelot/Ocelot.csproj src/Ocelot/RUN dotnet restoreCOPY . .WORKDIR /src/demos/ApiGateway.WebRUN dotnet add package BuildBundlerMinifier#这里添加了对bundle的支持,你可以不使用,因为我更改了样式,所以这里加上了这个。RUN dotnet restoreRUN dotnet build -c Release -o /app# 编译以后,我们进行发布,并直接复制到app目录FROM build AS publishRUN dotnet publish -c Release -o /app# 设定app目录为工作目录FROM base AS finalWORKDIR /appCOPY --from=publish /app .# 挂载/app/configurations目录VOLUME /app/ConfigurationsENTRYPOINT ["dotnet", "ApiGateway.Web.dll"]
本文来自网络,不代表1号站长-站长学院|资讯交流平台立场。转载请注明出处: https://www.1cn.cc/fwq/web/3742.html
上一篇CentOS6.5服务器环境安装VP N的方法
下一篇 详解Docker守护进程的配置及日志
admin

作者: admin

这里可以再内容模板定义一些文字和说明,也可以调用对应作者的简介!或者做一些网站的描述之类的文字或者HTML!

为您推荐

评论列表()

    联系我们

    联系我们

    0898-88888888

    在线咨询: QQ交谈

    邮箱: email@wangzhan.com

    工作时间:周一至周五,9:00-17:30,节假日休息

    关注微信
    微信扫一扫关注我们

    微信扫一扫关注我们

    关注微博
    返回顶部