在Mac OS下使用docker构建基于node的博客程序hexo
截止目前为止,在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) 一次性删除所有的镜像。
相关文章
无论是 Windows 系统用户,还是 macOS 系统用户,都可以通过多种方法对开机自启动项进行有效的管理,开机启动这个叫法不准确,mac系统应该叫“自启动”或则“登录时启动”2025-04-18
macOS无效Launchpad图标轻松删除的4 种实用方法
mac中不在appstore上下载的应用经常在删除后它的图标还残留在launchpad中,并且长按图标也不会出现删除符号,下面解决这个问题2025-04-02
令人惊艳的AI新功能! macOS Sequoia 15.4正式发布
macOS Sequoia 15.4 正式发布,带来了令人惊艳的 AI 新功能!其中,最亮眼的是基于 AI 的「邮件」自动分类功能,详细请看下文介绍2025-04-02
macOS屏幕使用时间是什么? mac屏幕使用时间设置和关闭技巧
屏幕使用时间最初是 iPhone 和 iPad 的一个功能,现在mac设备也有,该怎么设置查看和关闭屏幕使用时间呢?详细请看下文介绍2025-04-02
如何关闭 Mac 触发角功能或设置修饰键? mac电脑防止误触设置技巧
从Windows换到iOS大半年来,触发角是我觉得值得吹爆的MacBook效率神器,成为一大说服理由,下面我们就来看看mac电脑防止误触设置技巧2025-03-10
Mac触发角设置技巧,让你的操作更高效!今天我们来聊聊如何利用Mac的系统设置来提升你的工作效率和舒适度,其中一个非常实用的功能就是触发角2025-03-07
Mac电脑mds_store进程占用cpu过高的三种解决办法
当 macOS 的 mds_stores 进程占用过高的 CPU 使用率时,可能是由于 Spotlight 索引过程导致的,Spotlight 是 macOS 中用于搜索和索引文件的系统服务,而 mds_stores 是其索2025-03-07
macOS Sequoia 15.3 发布:附详细更新内容一览
苹果公司最新发布的 macOS Sequoia 15.3 更新,已解决了 SuperDuper 备份工具无法创建可启动备份的 BUG,下面我们就来看看这个版本带来的具体变化2025-02-06
Mac 启动行为由你掌控! macOS 15 Sequoia禁止自动开机启动的技巧
Mac设备在打开屏幕或连接电源时,会自动开机启动,如果你不喜欢这种设定,想要禁止自动启动,该怎么操作呢?我们可以使用命令实现2025-01-31
经常使用Mac电脑的用户会发现,找不到Mac电脑的资源库,我们怎么打开资源库并使用呢?下面我们就来看看macOS资源库文件夹详解2025-01-21





最新评论