最近由于更换了VPS服务器,需要把原来老的服务器上发布的 gitbook 迁移到新的服务器上来。在新的服务器上重新安装 gitbook 的时候,遇到了各种恼人的npm/node版本的问题,遂决定构建一个 gitbook 的 docker 镜像,来避免后续在 gitbook 环境和版本问题上浪费时间。
0x00 构建 gitbook 的 docker 镜像
构建一个docker镜像十分简单,总共就三步:
- 编写 Dockerfile
- build
- push 到 docker hub
编写 Dockerfile
gitbook 的依赖很简单,使用 node
作为基础镜像,使用 npm 安装gitbook-cli
就行:
1 | FROM node:8.5-alpine |
构建
写好 Dockerfile 后, 直接运行 docker 命令行构建
1 | docker build . -t tomoyadeng/gitbook:latest |
这里直接构建的镜像打上了tomoyadeng/gitbook:latest
的标签,tomoyadeng 是我在Docker Hub 上注册好了的命名空间
push
随后可以将构建好的镜像推送到 Docker Hub
1 | docker login |
使用
1 | docker run --rm -v "$PWD:/gitbook" -p 4000:4000 tomoyadeng/gitbook gitbook <command> |
Frequently used gitbook commands
install
1 | docker run --rm -v "$PWD:/gitbook" -p 4000:4000 tomoyadeng/gitbook gitbook install |
build
1 | docker run --rm -v "$PWD:/gitbook" -p 4000:4000 tomoyadeng/gitbook gitbook build |
serve
1 | docker run --rm -v "$PWD:/gitbook" -p 4000:4000 tomoyadeng/gitbook gitbook serve |
more commands or details please refer to gitbook-cli