用Docker自动构建纸壳CMS
纸壳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。
- 定义编译环境builder
- 将源代码复制到编译环境中的build目录
- 执行 restore
- 定位到 ZKEACMS.WebHost 目录,执行发布命令 dotnet publish-zkeacms
- 定义运行环境为 microsoft/aspnetcore:2.0
- 将发布好的内容从编译环境中复制到运行环境中
整个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
用Docker自动构建纸壳CMS的更多相关文章
- 在Docker中运行纸壳CMS并配置使用MySql
纸壳CMS是基于ASP.Net Core开发的可视化内容管理系统,可以跨平台部署,可以在容器中运行.接下来看看如何在docker中运行纸壳CMS. GitHub:https://github.com/ ...
- 使用VS Code开发纸壳CMS自动编译主题压缩CSS,JS
Visual Studio Code (简称 VS Code / VSC) 是一款免费开源的现代化轻量级代码编辑器,支持语法高亮.智能代码补全.自定义热键.括号匹配.代码片段.代码对比 Diff.GI ...
- 纸壳CMS主题增强,支持主题中加入模板
背景 在之前,纸壳CMS的主题仅仅只是CSS样式,并不支持在主题下使用模板来构建不同的HTML结构.现在我们对主题功能做了增强,可以在主题下添加各自的模板,这样在制作主题时,就会更加自由.不仅如此,新 ...
- ASP .Net Core路由(Route) - 纸壳CMS的关键
关于纸壳CMS 纸壳CMS是一个开源免费的,可视化设计,在线编辑的内容管理系统.基于ASP .Net Core开发,插件式设计: GitHub:https://github.com/SeriaWei/ ...
- 纸壳CMS可视化建站系统搭建多语言网站
纸壳CMS是可视化建站系统,现已经从架构上支持多语言.但是多语言功能默认是没有开启的.您可以从设置中开启多语言,或者随时关闭它,您可以随时进行切换. 开启多语言 如果您没有在系统设置中看到多语言设置菜 ...
- 纸壳CMS(ZKEACMS)体验升级,快速创建页面,直接在页面中修改内容
关于纸壳CMS 纸壳CMS又名 ZKEACMS Core 是ZKEACMS的 .net core 版本,可运行在 .net core 1.1 平台上.是一个开源的CMS. 纸壳CMS对于 ZKEACM ...
- 纸壳CMS替换默认实现
简介 纸壳CMS是一个开源免费的可视化内容管理建站系统,拖拽就可以轻松建网站. GitHub: http://github.com/SeriaWei/ZKEACMS 纸壳CMS在设计上使用的是ASP. ...
- 使用vs code开发纸壳CMS并启用Razor智能提示
关于纸壳CMS 纸壳CMS是一个开源免费的,可视化设计,在线编辑的内容管理系统.基于ASP .Net Core开发,插件式设计: 下载代码 GitHub:https://github.com/Seri ...
- 纸壳CMS的插件加载机制
纸壳CMS是一个开源的可视化设计CMS,通过拖拽,在线编辑的方式来创建网站. GitHub https://github.com/SeriaWei/ZKEACMS.Core 欢迎Star,Fork,发 ...
随机推荐
- 太白老师day6 1.代码块 2.is==id 3.小数据池
1.代码块: 一个模块一个函数一个类,一个文件都是代码块 在交互模式下, 每一行都是一个代码块 2. is == 内存地址 就是id门牌号 在内存中id是唯一,如果两个变量指向的id相同,那么他们在内 ...
- C++Primer笔记-----day05
=======================================================================day05======================== ...
- onlevelwasloaded的调用时机
并不是任何场景加载完成后都会触发该事件,必须使用场景加载API才能触发onlevelwasloaded函数,场景加载API如 scenemanager.loadscene等,additive模式不触发 ...
- 如何设置tomcat,直接通过IP 访问
找到tomcat的主目录,进入conf文件夹,找到server.xml文件,并打开: 修改tomcat的监听端口为80端口: 在server.xml文件中找到: <Connector por ...
- iOS学习之UIPickerView控件的关联选择
接上篇iOS学习之UIPickerView控件的简单使用 接着上篇的代码 http://download.csdn.net/detail/totogo2010/4391870 ,我们要实现的效果如下: ...
- Android 定时重复启动弹出窗口。
本来想着用handlerpostdelay就可以实现,没想到演示后关闭应用居然报错. 后来想到是没有了activity. ((Activity)context).isFinishing() 可以传入c ...
- Codeforces 1154F (DP)
题意:有一个人去买铲子,他需要买正好k把.每把铲子有个标价,并且每把铲子最多只能被买一次.有m种优惠方案,每个优惠方案xi, yi是指如果这次恰好购买了xi把铲子,那么这次购买的铲子中最便宜的yi把将 ...
- libpcap编程实例
#include <stdio.h> #include <stdlib.h> #include <pcap.h> #include <errno.h> ...
- Redis初学笔记
1.官网概述 Redis is an open source (BSD licensed), in-memory data structure store, used as database, cac ...
- JS中的唯一容器:数组
JS中的唯一容器:数组 一.什么类型的数据都可以存储 二. 定义的方式有两种 1 . var arra=[];var arra=[“a”,“b”,"c"]; 2.v ...