在 OSX 下使用 docker 构建 hexo 环境

2015-05-31 08:55       

摘要: 截止目前为止,在docker hub上还看不到hexo 3+版本的镜像构建。 由于Node环境的安装时间比较长,对于电脑比较多的人相对来说还是比较麻烦的。 基于DockerFile构建自己的HEXO环境非常灵活,可以根据自己的情况进行定制。 可以导入导出复制环境部署到其他电脑中。 实践开始 docker安装 大部分Linux,比如说Ubuntu,Debian都可以通过如下命令安装: curl -sSL https://get.daocloud.io/docker | sh TIP:别忘了配置好DaoCloud加速,不然构建速度很慢。 构建 docker build -t hexo3 - hexo3.dockerfile hexo3.dockerfile 如下: FROM node:s ...

截止目前为止,在docker hub上还看不到hexo 3+版本的镜像构建。

由于Node环境的安装时间比较长,对于电脑比较多的人相对来说还是比较麻烦的。

基于DockerFile构建自己的HEXO环境非常灵活,可以根据自己的情况进行定制。

可以导入导出复制环境部署到其他电脑中。

实践开始

docker安装

大部分Linux,比如说Ubuntu,Debian都可以通过如下命令安装:

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

TIP:别忘了配置好DaoCloud加速,不然构建速度很慢。

构建

docker build -t hexo3 - < hexo3.dockerfile

hexo3.dockerfile 如下:

FROM node:slim

MAINTAINER Jianying Li <lijianying12@gmail.com>

# instal basic tool 

RUN apt-get update && apt-get install -y git ssh-client ca-certificates --no-install-recommends && rm -r /var/lib/apt/lists/*

# set time zone

RUN echo "Asia/Shanghai" > /etc/timezone && dpkg-reconfigure -f noninteractive tzdata

# install hexo

RUN npm install hexo@3.0.0 -g

# set base dir

RUN mkdir /hexo

# set home dir

WORKDIR /hexo

EXPOSE 4000

CMD ["/bin/bash"]

定制自己的image请注意,现在最简洁的三个包内容为:

git,部署的时候用(如果不用git部署请去掉)。

ssh-client(ssh方式的git部署依赖)。

ca-certificates(https方式的git部署依赖)。

TIP: 在shell中或者lib中调用https方式通讯的时候如果报错

Problem with the SSL CA cert (path? access rights?)

可以通过安装包:ca-certificates 来解决问题,yum apt中都是如此。

构建时间大概十几分钟完成。

准备把实体机(host)上的文件挂载到docker中

安装Guest Additions, 因为要使用Shared Floader。

使用命令 sudo mount -t vboxsf [sharename] [dist]来挂载共享目录。

运行

docker run -it -d -p 4000:4000 -v /root/blog:/hexo/ --name hexo hexo3

注意路径 /root/blog/ 是我VirtualBox 虚拟机中blog存储的位置。

注意参数/root/blog/需要使用绝对路径

其他的参数可以很容易的在manual中找到意义。

备份与还原

#docker save hexo3 > /root/hexo3.tar

#docker load < /root/hexo3.tar

注意这里使用save而不是export 因为需要保存历史层

参考导出大小:

du -h /root/hexo3.tar

261M /root/hexo3.tar

从以上所有的工作中,对比虚拟机进行环境的构建打包,docker具有构建环境时间更短,打包文件更小的特点。

使用容器操作blog

docker exec -it hexo /bin/bash

Tip: 虽然做到了用docker构建一个非常方便移植的hexo环境,但是运行命令hexo的时候有点慢,但不是那种忍受不了的慢。

小技巧

在调试的时候可以使用 docker rm $(docker ps -q -a) 一次性删除所有的容器,docker rmi $(docker images -q) 一次性删除所有的镜像。

原文发布时间为:2015-05-31

本文来自合作伙伴“Linux中国”

时间: 2024-08-24 12:32:14

在 OSX 下使用 docker 构建 hexo 环境的相关文章

用Docker构建与环境无关的系统

Docker 有三个特定的功能,以帮助建立与环境无关的系统: 只读文件系统 环境变量注入 存储卷 处理卷是一个大主题,为了学习前两个功能,在本文的其余部分将改变对示例的需求. WordPress 使用一个名为MySQL 的数据库程序来存储大部分数据,所以先确保运行WordPress 的容器是只读文件系统,是一个好主意. 1 只读文件系统 使用只读文件系统产生以下两个积极效果.首先,你对容器不能更改它所包含的文件产生信心:其次,你也会进一步树立信念:容器中的攻击者无法破坏文件. 为了在客户系统上使

通过Ruby on Rails和docker构建微服务架构之入门教程

说到时下的架构,免不了会涉及到微服务.而谈到微服务架构,又跟容器和Docker技术脱不了关系.虽然容器和Docker并不完全是一回事,但两者是密不可分的,而且二者之间也有共同之处:在大型复杂应用的构建和运营方面,二者都可以大大提高企业的效率.   微服务可不像一般的应用,可以通过apt-get工具进行安装,大家可能会问了:我们该如何才能像安装应用一样实现这种服务呢?在很大的程度上,这个问题的答案是否定的,我们无法轻松实现这种服务.更准确的说,至少目前我们还无法实现.在一个系统中,最难修改的就是架

使用Spring Cloud和Docker构建微服务

本文讲的是使用Spring Cloud和Docker构建微服务,[编者的话]这是系列博文中的第一篇,本文作者使用Spring Cloud和Docker构建微服务平台,文章的例子浅显易懂. 本系列博文主要向大家介绍如何使用Spring Cloud和Docker构建微服务平台. 什么是Spring Cloud? Spring Cloud 是Pivotal提供的用于简化分布式系统构建的工具集.Spring Cloud引入了云平台连接器(Cloud Connector)和服务连接器(Service Co

Spring Boot与Docker(二):使用Spring Boot和Docker构建微服务架构

本文讲的是Spring Boot与Docker(二):使用Spring Boot和Docker构建微服务架构,[编者的话]本篇是<使用Spring Boot和Docker构建微服务架构>系列的第二篇,本篇我们将会利用工具进行设置,深入探讨如何使用Docker工作,然后搭建我们的第一个容器.原文作者为3Pillar环球旗下美国Adbanced技术集团的总监Dan Greene,Dan有十八年的软件设计和开发经验,包括在电子商务.B2B集成.空间分析.SOA架构.大数据以及云计算等领域的软件产品架

联想企业网盘基于Docker构建分布式部署框架实践

本文讲的是联想企业网盘基于Docker构建分布式部署框架实践[编者的话]本文首先介绍了企业级分布式系统部署所面临的挑战,并且结合联想云存储自有框架研发经验分享了一些解决问题的思想和具体做法.最后还与Kubernetes项目进行了简单对比. 众所周知,企业网盘在这两年呈现爆发式增长,越来越多的企业选择企业网盘,来解决企业在业务过程中面临的数据集中存储.共享.分发.协同办公以及移动化等痛点需求.同时将企业网盘整合到各个业务系统中,大幅提高企业的数据流转效率和安全! 而联想企业网盘增长尤为迅速,仅联想

Garena黄智凯:Docker构建自动化运维

文章讲的是Garena黄智凯:Docker构建自动化运维,本文根据[2016 第七届中国数据库技术大会](微信搜索DTCC2014,关注关注中国数据库技术大会公众号)现场演讲嘉宾黄智凯老师分享内容整理而成.录音整理及文字编辑IT168@ZYY@老鱼 讲师简介 来自新加坡最大的互联网公司Garena,曾就职于新浪和奇虎360,DBA背景成长的他同时一直致力于运维平台自动化的建设和创新 正文 大家好,我是来自Garena公司的黄智凯,大家可能对Garena比较陌生,Garena最开始做游戏运营,现在

去哪儿网基于Mesos和Docker构建私有云服务的实践

本文讲的是去哪儿网基于Mesos和Docker构建私有云服务的实践[编者的话]本文深入介绍了去哪儿网利用Mesos和Docker构建私有云服务的全过程,分享了从无状态应用向有状态应用逐步过度的经验与心得. 平台概览 2014年下半年左右,去哪儿完成了有关构建私有云服务的技术调研,并最终拍定了Docker/Mesos这一方案.下图1展示了去哪儿数据平台的整体架构: 图1:去哪儿数据平台的整体架构 该平台目前已实现了如下多项功能: 每天处理约340亿/25TB的数据: 90%的数据在100ms内完成

去哪儿网基于Mesos和Docker构建私有云服务实践

本文深入介绍了去哪儿网利用Mesos和Docker构建私有云服务的全过程,分享了从无状态应用向有状态应用逐步过度的经验与心得. 平台概览 2014年下半年左右,去哪儿完成了有关构建私有云服务的技术调研,并最终拍定了Docker/Mesos这一方案.下图1展示了去哪儿数据平台的整体架构: 图1:去哪儿数据平台的整体架构 该平台目前已实现了如下多项功能: 每天处理约340亿/25TB的数据; 90%的数据在100ms内完成处理; 最长3h/24h的数据回放; 私有的Elasticsearch Clo

在Docker Swarm模式下,Docker应用如何实现服务发现

本文讲的是在Docker Swarm模式下,Docker应用如何实现服务发现[编者的话]无论容器是否存在于集群之中,本文将告诉我们如何可靠地连接到它.  [深圳站|3天烧脑式Kubernetes训练营]培训内容包括:Kubernetes概述和架构.部署和核心机制分析.进阶篇--Kubernetes调工作原理及源码分析等. 当我们第一次考虑在生产环境中使用容器时,常常会面对一个问题:当容器运行在一组服务器集群上时,无论它在哪个服务器上,如何让其他实体(人或应用程序)可靠地连接到它.  一定程度上,