Hexo折腾记——自动部署篇

目标:

写完一键上传并部署。(一个命令完成)

详细流程:

上传图片至七牛,上传 deploy 文件至Github公开库 以及 博客源代码 至Github 私有库,Daocloud 检测到commit 自动构建镜像并自动更新应用。

实现:

  1. 在public目录下放置Dockerfile文件:
FROM daocloud.io/nginx
COPY ./ /usr/share/nginx/html
  1. 在Daocloud里,创建新的代码构建,并设置成检测到commit就自动构建,再用这个镜像创建新应用,并设置自动更新
  2. hexo根目录下创建 update.sh

(Mac/Linux下需修改执行权限: sudo chown 755 ./update.sh, Windows 需改成对应的bat脚本)

    #!/bin/sh
    # author: joway
    # 如果参数个数不等于0
    if test $# -gt 0
    then
      if test $1 = '-img'
      then
        cd ./source/photos/
        node photo-tool.js
        cd ../../
        echo 'Upload complete'
      else
        echo 'Parameter error'
      fi
    else
      echo 'No image needs upload'
    fi
    hexo clean
    hexo g && gulp
    hexo deploy
    git add .
    git commit -m 'update backup'
    git push origin master

命令使用:

 # 需要上传图片
./update.sh -img
#图片没改动, 只上传站点文件
./update.sh


相关文章:

Hexo折腾记——基本配置篇

Hexo折腾记——性能优化篇

时间: 2024-12-02 22:20:22

Hexo折腾记——自动部署篇的相关文章

Hexo折腾记——基本配置篇

前言 人闲起来真是可怕,本来已经折腾过了jekyll和Ghost,静态和动态博客也都尝了遍鲜,然而还是按捺不住寂寞又折腾起来Hexo.话说我最早大概是两年前高考结束的时候知道的Hexo,那时在家里没事干想搭个博客玩,然后看见了jekyll和hexo,无奈那时候就一台windows,啥也不懂啥也不会,这两个博客工具楞是装不上去.而Jekyll的一个好处是可以不用在本地跑,Github 的Pages功能原生支持Jekyll,所以我只需要下载些别人的源文件,自己随便修改下,传到Github就能在线调试

Hexo折腾记——性能优化篇

折腾Hexo的本来目的就是为了学习把性能优化到极致,由于水平有限,这里牵涉到的所谓的性能优化仅仅只是一些表面工夫,并不牵涉非常细节的前端性能. 另外,由于我朝特殊的网络环境,我使用的谷歌分析,以及Disqus 均会导致出现因时因地因运营商而异的发抽状况,故而所有速度测试均在排除这些干扰下进行的. 静态文件压缩 静态文件包括: html,css,js,images . 我才用了gulp来跑自动压缩任务 .具体方法如下: npm 安装如下工具, 方法皆为 : npm install xxx --sa

自动部署SQL Trace和Windows性能监视器

问题引出 自从菜鸟的上一篇<如何分析SQL Server Trace文件>文章以后,老鸟对菜鸟是另眼相看:"鸟哥,上篇文章你总结得还不错,当然要赶上我还有点距离".老鸟还是改不了他得意忘形的模样:"关于Trace文件的自动化分析你研究透了,那怎么自动化部署SQL Trace和Windows性能监视器,你也得研究研究吧". "虽然老鸟骄傲自满的样子让人讨厌,但是这个问题还是问的很不错的.",于是乎,菜鸟领了任务,便开始埋头苦干起来. 自

Docker自动部署Apache Tomcat

本文讲的是Docker自动部署Apache Tomcat,[编者的话]本文是Docker的入门文章,推荐Java开发者阅读.文章详细介绍了如何用Docker来安装部署Tomcat. 介绍 本文会讲述: 扩展Tomcat的官方Dockerfile 构建新的镜像 从修改过的新镜像启动容器 在容器里部署RESTful的Web服务并测试 Apache Tomcat 使用docker search可以查到最流行的(和官方的)Docker Tomcat容器: $ sudo docker search tom

github-我在Azure上新建了一个网站, 然后又新建了一个从gibhub到Azure的自动部署

问题描述 我在Azure上新建了一个网站, 然后又新建了一个从gibhub到Azure的自动部署 我在Azure上新建了一个网站, 然后又新建了一个从gibhub到Azure的自动部署. 前面的几次部署都没问题, 只是最近这次修改之后(主要是css修改和添加图片),发现图片传不过来. Github图片添加成功, Azure Log也显示正常, 有人遇到过同样的问题么? 解决方案 你用的是山寨azure还是微软azure,山寨azure因为在大局域网内,所以github经常被干扰. 解决方案二:

RDS SQL Server死锁(Deadlock)系列之三自动部署Profiler捕获死锁

问题引入 系列SQL Server死锁系列文章之二,讲的是如何手动部署Profiler来捕获死锁以及对死锁发时场景重现,这篇文章是将这个手动部署的过程自动化话,实现一键部署,既快捷方便,又简单适用.上一篇文章,参见:使用Profiler捕获死锁. 自动部署Profiler 废话不多说,直接上代码,只需要初始化下面的Profiler停止时间@stop_time即可: use master GO set nocount on declare @trace_folder nvarchar(256) ,

利用sqlcmd实现SQLServerServiceBroker的自动部署

       因为工作关系,我们项目用到了Service Broker这项技术.它在功能和性能上真的是没的说,唯一让人郁闷的就是部署.要知道,在加密情况下部署一台服务器和一台客户端我们需要以下步骤: 1. 在服务器端清理环境, 2. 在客户端清理环境, 3. 在服务器端创建数据库,并且创建Service Broker相关对象(Message Type,Contract,Queue,Service,Routing甚至Binding) 4. 在客户端创建数据库,并且创建Service Broker相

将代码从Git自动部署到容器

本文讲的是将代码从Git自动部署到容器[编者的话]将您的代码从您的Git仓库转移到您的容器可能是一件痛苦的工作.本文介绍了如何实现自动化部署. [烧脑式Kubernetes实战训练营]本次培训理论结合实践,主要包括:Kubernetes架构和资源调度原理.Kubernetes DNS与服务发现.基于Kubernetes和Jenkins的持续部署方案 .Kubernetes网络部署实践.监控.日志.Kubernetes与云原生应用.在CentOS中部署Kubernetes集群.Kubernetes

初创公司如何实现 Ansible 多机房自动部署发布

本文讲的是初创公司如何实现 Ansible 多机房自动部署发布, 一.面临的问题 一个完整的程序开发流程少不了部署发布这个环节,而部署发布是一个重复的过程,最基本的操作包含停止系统服务.更新软件包.重启系统服务,复杂的还需要做好监控.灰度发布.回滚等.在只有少量服务器的情况下,大多数运维人员会选择手动更新,减少自动化部署发布的开发成本.而当服务器数量增加,甚至服务器可能存在于跨地域的不同机房情况下,如何减少部署发布的人力和时间成本,实现自动化部署发布和无缝发布,而且在部署发布期间仍然能够正常提供