Py学习  »  docker

使用 docker 部署 mdnice

dotNET跨平台 • 3 年前 • 361 次点击  

使用 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 yarn

COPY . .
RUN yarn run build

FROM nginx:alpine

COPY --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


Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/111708
 
361 次点击