当前位置: 首页 > news >正文

使用Dockerfile构建hexo博客镜像,并部署

  • 基于centos7.9父镜像构建hexo:1.0镜像:

    cat << eof > Dockerfile
    # 根镜像
    FROM centos:7.9.2009
    MAINTAINER qv123<qv1095322098@163.com>
    # 设置工作目录
    WORKDIR /usr/src/app
    # 暴露端口号
    EXPOSE 4000
    # 作者注释
    MAINTAINER qv123<qv1095322098@163.com>
    # 安装nodejs,npm,git
    RUN yum -y update && \yum -y install epel-release && \yum -y install nodejs npm git && node -v && npm -v
    # 1.配置node.js的npm镜像源为淘宝
    RUN npm config set registry https://registry.npm.taobao.org
    ​
    # 安装hexo博客
    # 2.启动hexo服务,--save参数市将可以将安装的模块信息自动添加到项目的package.json文件中的dependencies字段中。
    # 3.下载博客hexo,初始化博客生成blog目录并打开
    RUN npm install -g hexo-cli && hexo init blog && cd blog \&& npm install hexo-server --save \&& npm install
    # 复制
    # 挂载
    # 4.安装博客插件 
    RUN cd blog && npm install hexo-deployer-git --save \&& npm install hexo-renderer-pug --save \&& npm install hexo-renderer-stylus --save \&& npm install hexo-migrator-rss --save \&& npm install hexo-asset-image --save \&& npm install hexo-wordcount --save \&& npm install hexo-generator-sitemap --save \&& npm install hexo-generator-baidu-sitemap --save \&& npm install hexo-helper-live2d --save
    # 5.安装音乐播放器
    RUN cd blog && npm install hexo-tag-aplayer --save
    # 6.更换主题
    RUN cd blog && git clone -b master https://gitee.com/immyw/hexo-theme-butterfly.git themes/butterfly \&& sed -i "s/^theme:.*/theme: butterfly/g" _config.yml
    # 容器启动时启动hexo服务
    CMD cd blog && hexo clean && hexo g && hexo server
    eof
  • 构建镜像:

    docker build -f ./Dockerfile -t my_hexo:1.0 .
  • 创建容器:

    docker run -id --name=my_hexo -p 4000:4000 my_hexo:1.0
  • 复制容器中的blog到宿主机

    docker run -id --name=my_hexo -p 4000:4000 my_hexo:1.0
  • 删除容器:

    docker stop my_hexo;docker rm my_hexo
  • 创建容器,带目录挂载

    docker run -id --name=my_hexo -p 4000:4000 -v $PWD/blog:/usr/src/app/blog my_hexo:1.0
  • 跟踪容器日志:

    docker log -f my_hexo
    ...
    INFO  Start processing
    INFO  Hexo is running at http://localhost:4000/ . Press Ctrl+C to stop.
  • 如果发现日志中显示http地址,就可以通过浏览器访问

    http://192.168.174.21:4000/

相关文章:

  • Qt QWebSocket实现JS调用C++
  • 广西南宁新能源汽车电机定子三维扫描3D尺寸测量检测-CASAIM中科广电
  • 数据仓库相关
  • 远勤山丨品质第一 服务先行 扎扎实实打造让消费者满意的产品
  • 汇编层面有三个主要的操作对象
  • git 提交成了LFS格式,如何恢复
  • Python UI自动化 —— 关键字+excel表格数据驱动
  • Spring Boot中使用Redis进行大数据缓存
  • 应用程序生成器:App Builder 2023
  • 『亚马逊云科技产品测评』活动征文|构建生态农场家禽系统
  • Kafka中topic(主题)、broker(代理)、partition(分区)和replication(副本)它们的关系
  • 算法--- 叶子相似的树
  • CRM系统定制开发价格
  • ChatGPT API 学习
  • 非关系型数据库Redis(缓存型数据库)
  • HTTP--网络协议分层,http历史(二)
  • magento2项目上线注意事项
  • oldjun 检测网站的经验
  • php面试题 汇集2
  • PV统计优化设计
  • python大佬养成计划----difflib模块
  • windows下使用nginx调试简介
  • 技术攻略】php设计模式(一):简介及创建型模式
  • 算法系列——算法入门之递归分而治之思想的实现
  • #NOIP 2014# day.2 T2 寻找道路
  • #QT(智能家居界面-界面切换)
  • $.each()与$(selector).each()
  • (pytorch进阶之路)扩散概率模型
  • (翻译)Entity Framework技巧系列之七 - Tip 26 – 28
  • (附源码)springboot 房产中介系统 毕业设计 312341
  • (附源码)springboot 智能停车场系统 毕业设计065415
  • (附源码)ssm学生管理系统 毕业设计 141543
  • (三)mysql_MYSQL(三)
  • (转)setTimeout 和 setInterval 的区别
  • (转)机器学习的数学基础(1)--Dirichlet分布
  • .h头文件 .lib动态链接库文件 .dll 动态链接库
  • .NET/C# 阻止屏幕关闭,阻止系统进入睡眠状态
  • .Net6使用WebSocket与前端进行通信
  • .Net程序帮助文档制作
  • .NET运行机制
  • /deep/和 >>>以及 ::v-deep 三者的区别
  • @for /l %i in (1,1,10) do md %i 批处理自动建立目录
  • @NestedConfigurationProperty 注解用法
  • @Pointcut 使用
  • @Transactional注解下,循环取序列的值,但得到的值都相同的问题
  • @德人合科技——天锐绿盾 | 图纸加密软件有哪些功能呢?
  • [ vulhub漏洞复现篇 ] AppWeb认证绕过漏洞(CVE-2018-8715)
  • [2016.7 test.5] T1
  • [Angular 基础] - 自定义指令,深入学习 directive
  • [ASP]青辰网络考试管理系统NES X3.5
  • [BZOJ1060][ZJOI2007]时态同步 树形dp
  • [C++基础]-初识模板
  • [Docker]六.Docker自动部署nodejs以及golang项目
  • [IE技巧] IE8中HTTP连接数目的变化
  • [luogu P1527]矩阵乘法(矩形k小)