在Mac OS下使用docker构建基于node的博客程序hexo

2023-12-08 0 445

截止目前为止,在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.dockerfilehexo3.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 zoneRUN echo \”Asia/Shanghai\” > /etc/timezone && dpkg-reconfigure -f noninteractive tzdata# install hexoRUN npm install hexo@3.0.0 -g# set base dirRUN mkdir /hexo# set home dirWORKDIR /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.tar261M/root/hexo3.tar从以上所有的工作中,对比虚拟机进行环境的构建打包,docker具有构建环境时间更短,打包文件更小的特点。

使用容器操作blog复制代码代码如下:docker exec -it hexo /bin/bashTip: 虽然做到了用docker构建一个非常方便移植的hexo环境,但是运行命令hexo的时候有点慢,但不是那种忍受不了的慢。

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

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悠久资源 苹果MAC 在Mac OS下使用docker构建基于node的博客程序hexo https://www.u-9.cn/system/macos/135874.html

常见问题

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务