使用 docker 部署 mdnice

Intro

最近 mdnice 的在线版使用开始需要登录才能访问,一方面我觉得我的文章会被保存的他们的服务器上,使用他们的平台就能轻松拿到很多文章的数据,他们甚至是可以直接拿到 markdown 原始内容去别的平台分享转发,另外一方面也是觉得以后如果加了别的限制就没有办法使用,所以还是打算自己部署一下好了,前两天看到“老法师昭昭”发的一个私有化部署的教程,可以参考前两天转发的文章 绕开登录限制,私有化部署Markdown转公众号格式神器mdnice ,感觉挺好的与我的想法不谋而合,但是我的应用都是 docker 部署的,不想再通过文件的形式拷来拷去的,不方便移植,部署也不方便,于是就打算打包一个 docker 镜像来用

Docker

mdnice 本身并没有提供 docker 的支持,于是我 Fork 了一份增加了 docker 的支持,为了方便别的小伙伴做自定义和参考,给 mdnice 提了一个 PR,可以参考:https://github.com/mdnice/markdown-nice/pull/268

Dockerfile 如下:

FROM node:12-alpine AS builder
WORKDIR /app# install and cache app dependencies
COPY package.json .
RUN yarnCOPY . .
RUN yarn run buildFROM nginx:alpineCOPY --from=builder /app/build /usr/share/nginx/html
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]

Dockerfile 本身并不复杂,使用 node 编译项目,拿到打包后的静态资源,放在 nginx 目录下,由 nginx 对外提供服务,这里的 Dockerfile 有一些小技巧可以参考,在 build 的时候先拷贝 package.json 进行 npm 包的还原,这样如果 package.json 不发生变化就会使用镜像缓存就不会重新还原 npm 包了

打包 docker 镜像,有了 dockerfile,打包 docker 镜像就是一个很简单的事情了

docker build -t mdnice .

就可以打包一个镜像名字是 mdnice 的 docker 镜像了

使用 docker 部署

有了 docker 镜像就可以比较简单的使用,可以使用下面的命令进行部署

docker run -d --name mdnice -p 9000:80 mdnice

如果不想自己 build docker 镜像,可以使用我 build 好的镜像

docker run -d --name mdnice -p 9000:80 weihanli/mdnice

9000 是我随便定义的一个端口号,你可以根据需要修改成自己想要的端口号

部署效果如下:

More

如果你想进一步修改源代码,就要修改后进行再进行打包了

希望能够帮到你~~

References

  • https://github.com/mdnice/markdown-nice/pull/268

使用 docker 部署 mdnice相关推荐

  1. 推荐一款基于docker部署的个人免费笔记工具wiznote

    推荐一款基于docker部署的个人免费笔记工具wiznote 作为一个爱写作爱折腾的程序员,在做某个事情的时候,脑子里总是会联想并且不断蹦出各种奇怪的创意和想法,但是这些想法很多时候都是一闪而逝,事情 ...

  2. Docker 部署 SpringBoot 项目整合 Redis 镜像做访问计数Demo

    Docker 部署SpringBoot项目整合 Redis 镜像做访问计数Demo 最终效果如下 大概就几个步骤 1.安装 Docker CE 2.运行 Redis 镜像 3.Java 环境准备 4. ...

  3. Docker 部署SpringBoot项目不香吗?

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者:流星007 链接:toutiao.com/i68433912 ...

  4. docker部署springboot_Docker+SpringBoot快速构建和部署应用

    前言 Docker技术发展为当前流行的微服务提供了更加便利的环境,使用SpringBoot+Docker部署和发布应用,其实也是一件比较简单的事情.当前,前提是得有Docker的基础. 构建一个Spr ...

  5. docker初体验:docker部署nginx负载均衡集群

    Docker 是一个用于开发,交付和运行应用程序的开放平台.Docker 使您能够将应用程序与基础架构分开,从而可以快速交付软件.今天来为大家演示一下docker部署nginx负载均衡集群 环境 ce ...

  6. docker初体验:docker部署nginx服务

    Docker 是一个用于开发,交付和运行应用程序的开放平台.Docker 使您能够将应用程序与基础架构分开,从而可以快速交付软件.今天来为大家演示一下docker部署nginx 环境 centos7 ...

  7. Docker系列 四.Docker部署SpringBoot

    四.Docker部署SpringBoot 环境&工具: 阿里云轻量级服务器.CentOS 7系统.FinalShell(其他连接客户端也可以).IDEA 1. 创建springboot项目 这 ...

  8. Docker部署文档

    Docker部署文档 目录 Docker部署文档 1 一.什么是Docker 3 1.1Docker简介 3 1.2对比传统虚拟机总结 4 1.3Docker通常用于如下场景: 5 1.4基本概念 5 ...

  9. Docker部署Zookeeper集群

    Docker部署Zookeeper集群 官方网站: http://zookeeper.apache.org/ http://zookeeper.apache.org/doc/r3.4.8/zookee ...

最新文章

  1. 在vs2010或者vs2008中配置PC-lint9.0版
  2. 高性能WEB开发(6) - web性能测试工具推荐
  3. linux tomcat apr安装,Linux下Tomcat安装并开启APR模式-Go语言中文社区
  4. python 获取指定目录下的图片文件
  5. 论文浅尝 | 基于属性嵌入的知识图谱间实体对齐方法
  6. 【Java】浅谈JavaDoc文档注释
  7. 使用Red Hat Enterprise Linux的实时内核
  8. 165体重_身高165的女性体重多少比较合适?过胖和过瘦都不太好
  9. 关于网上商城开发的随笔记录2
  10. mysql insert or update_MySQL insert or update SQL 示例
  11. 图书管理系统UML课程设计
  12. php繁体类,PHP类UTF8编码内的繁简转换-繁体-简体
  13. 如何修复win7蓝牙服务器,快速解决win7系统蓝牙驱动的修复方法
  14. Java基础--文件合并器
  15. MTK-EIS电子防抖-gyro校准
  16. w ndows10系统怎么退出安全模式,Windows 10安全模式怎么解除
  17. Maven使用指南 配置阿里云镜像提高下载速度
  18. 公司/组织苹果开发者账号申请流程
  19. win10 SystemParametersInfo 设置屏保 不好使_抖音网红屏保时钟软件(附使用教程)...
  20. Linux —进程间的五种通信方式—(半双工管道、命名管道、消息队列、信号、共享内存),外加信号量。直接上代码:

热门文章

  1. 硬盘分区与故障排解速查手册(1)
  2. kafka 服务端消费者和生产者的配置
  3. 洛谷 P1736 创意吃鱼法(多维DP)
  4. 写出一个缓存系统的伪代码001
  5. 读《一个程序猿的生命周期》有感
  6. 设计模式 - Mediator
  7. 计算机答辩答不上来怎么回答,答辩答不上来怎么办
  8. esxi.主机配置上联端口_为什么现代的电脑机箱仍然具有USB 2.0端口?
  9. 【机房收费系统】多么痛的领悟
  10. POJ 2887 Big String