最近由于更换了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