纸壳CMS可以运行在Docker上,接下来看看如何自动构建纸壳CMS的Docker Image。我们希望的是在代码提交到GitHub以后,容器镜像服务可以自动构建Docker Image,构建好以后,就可以直接拿这个Docker Image来运行了。

Dockerfile

最重要的,就是Dockerfile中的定义了。先上代码:

FROM microsoft/aspnetcore-build:latest AS builder
WORKDIR /build
# Copy all files
COPY . ./
RUN dotnet restore
# Release ZKEACMS.WebHost
WORKDIR /build/src/ZKEACMS.WebHost
RUN dotnet publish-zkeacms # Build runtime image
FROM microsoft/aspnetcore:2.0.3
WORKDIR /zkeacms
COPY --from=builder /build/src/ZKEACMS.WebHost/bin/Release/PublishOutput .
EXPOSE 80
ENTRYPOINT ["dotnet", "ZKEACMS.WebHost.dll"]

简单解释一下,首先,需要使用microsoft/aspnetcore-build来发布纸壳CMS,因为microsoft/aspnetcore只是runtime,并不能release。

  1. 定义编译环境builder
  2. 将源代码复制到编译环境中的build目录
  3. 执行 restore
  4. 定位到 ZKEACMS.WebHost 目录,执行发布命令 dotnet publish-zkeacms
  5. 定义运行环境为 microsoft/aspnetcore:2.0
  6. 将发布好的内容从编译环境中复制到运行环境中

整个Dockerfile的定义很简单,如果您已经有安装了docker,将代码保存到项目的根目录,文件名为Dockerfile,就可以直接使用docker build来生成docker image了。

docker build -t zkeacms .

自动构建

已经定义好了Dockerfile,并可以在docker的环境中编译,发布,那现在就可以使用容器镜像服务来自动构建了。

Docker Hub

使用Docker Hub,创建一个自动构建的仓库,连接到GitHub中的项目,可以轻松实现自动构建

选择一个你的项目

在创建好你的仓库以后,简单设置一下分支和Dockerfile的路径,就可以了

阿里云容器镜像服务

如果你觉得Docker Hub太慢了,在国内,你可以使用阿里云的容器镜像服务。https://dev.aliyun.com/search.html

新建一个镜像仓库就行了:

在设置好以后,你会发现在你的项目设置中,会多了Webhooks或者Integrations & services

原文链接:http://www.zkea.net/codesnippet/detail/post-78

最新文章

  1. linux多种安装包格式的安装方法
  2. jquery在线预览PDF文件,打开PDF文件(向下兼容ie8、ie7)
  3. C# ?(问号)的三个用处(转载)
  4. HDU-4533 威威猫系列故事——晒被子(区间更新)
  5. C基础--结构体成员初始化方式
  6. HDU 2045 不容易系列之(3)—— LELE的RPG难题 (递推)
  7. JavaScript代码调试
  8. <html:text> Id属性
  9. Android-IM架构设计
  10. IOS 应用的架构解析
  11. 记一次将公司网站http换成https
  12. Javascript高级编程学习笔记(18)—— 引用类型(7)单体内置对象
  13. Python档案袋(变量与流程控制)
  14. mssql sqlserver 使用sql脚本获取群组后,按时间排序(asc)第一条数据的方法分享
  15. [CC-ADJLEAF2]Adjacent Leaves
  16. C# WinForm 菜单项的大小、高宽的手动控制
  17. 初探日志框架Logback
  18. crontab定时任务2_net
  19. 20155310 2016-2017-2 《Java程序设计》第五周学习总结
  20. cas单点登录-CAS5.1.3 overlay服务器搭建(二)

热门文章

  1. leetcode537
  2. RHCE7 学习里程-4用户权限,简单进程管理
  3. ffmpeg源码分析五:ffmpeg调用x264编码器的过程分析 (转5)
  4. partial分部类
  5. JAVA中List的三个子类。
  6. spring MVC模式拦截所有入口方法的入参出参打印
  7. 高性能Web服务器Nginx的配置与部署研究(10)核心模块之HTTP模块Location相关指令
  8. JavaScript中的一些小技巧
  9. 关于在64位win7下运行Virtualbox安装系统时出错(提示VBoxDD.DLL错误)的解决方
  10. Linux buffer and cache