使用 docker 部署 mdnice
使用 docker 部署 mdnice
Intro
最近 mdnice 的在線版使用開始需要登錄才能訪問,一方面我覺得我的文章會(huì)被保存的他們的服務(wù)器上,使用他們的平臺(tái)就能輕松拿到很多文章的數(shù)據(jù),他們甚至是可以直接拿到 markdown 原始內(nèi)容去別的平臺(tái)分享轉(zhuǎn)發(fā),另外一方面也是覺得以后如果加了別的限制就沒有辦法使用,所以還是打算自己部署一下好了,前兩天看到“老法師昭昭”發(fā)的一個(gè)私有化部署的教程,可以參考前兩天轉(zhuǎn)發(fā)的文章?繞開登錄限制,私有化部署Markdown轉(zhuǎn)公眾號(hào)格式神器mdnice ,感覺挺好的與我的想法不謀而合,但是我的應(yīng)用都是 docker 部署的,不想再通過文件的形式拷來拷去的,不方便移植,部署也不方便,于是就打算打包一個(gè) docker 鏡像來用
Docker
mdnice 本身并沒有提供 docker 的支持,于是我 Fork 了一份增加了 docker 的支持,為了方便別的小伙伴做自定義和參考,給 mdnice 提了一個(gè) 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 本身并不復(fù)雜,使用 node 編譯項(xiàng)目,拿到打包后的靜態(tài)資源,放在 nginx 目錄下,由 nginx 對外提供服務(wù),這里的 Dockerfile 有一些小技巧可以參考,在 build 的時(shí)候先拷貝 package.json 進(jìn)行 npm 包的還原,這樣如果 package.json 不發(fā)生變化就會(huì)使用鏡像緩存就不會(huì)重新還原 npm 包了
打包 docker 鏡像,有了 dockerfile,打包 docker 鏡像就是一個(gè)很簡單的事情了
docker?build?-t?mdnice?.就可以打包一個(gè)鏡像名字是 mdnice 的 docker 鏡像了
使用 docker 部署
有了 docker 鏡像就可以比較簡單的使用,可以使用下面的命令進(jìn)行部署
docker?run?-d?--name?mdnice?-p?9000:80?mdnice如果不想自己 build docker 鏡像,可以使用我 build 好的鏡像
docker?run?-d?--name?mdnice?-p?9000:80?weihanli/mdnice9000 是我隨便定義的一個(gè)端口號(hào),你可以根據(jù)需要修改成自己想要的端口號(hào)
部署效果如下:
More
如果你想進(jìn)一步修改源代碼,就要修改后進(jìn)行再進(jìn)行打包了
希望能夠幫到你~~
References
https://github.com/mdnice/markdown-nice/pull/268
總結(jié)
以上是生活随笔為你收集整理的使用 docker 部署 mdnice的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Asp Net Core 5 REST
- 下一篇: github star破13k,Dapr