1 Gitbook 是什么?

Gitbook是一个能将使用 Markown 语法的 md 格式文档,快速制作成各种格式的精美电子书的工具。还支持多人同时开发文档,比如多人同时翻译一本书籍,这个功能可以大大增加工作效率。

2 系统环境

CentOS7系统 + Docker环境

3 GitBook容器

启动好了Docker服务之后,我们就可以拉取Gitbook镜像了。先查找合适的镜像。不过由于Docker Hub的服务器在USA,国内又有网络出口限制,因此下载速度可能会很忙,请耐心等待,或者使用国内HUB。

docker search gitbook

使用Docker快速搭建Gitbook_docker

选好需要镜像后,我们需要将镜像拉取到本地

docker pull docker.io/fellah/gitbook

使用Docker快速搭建Gitbook_docker_02

基于该镜像创建一个容器

docker run -itd --name="my_gitbook" -h="my_gitbook" -p 4000:4000 -v /data/gitbook/books:/srv/gitbook/books 2908 /bin/bash

在创建容器时考虑到可以使用gitbook提供web服务,可以用在搭建web服务器了就将4000端口映射到容器内gitbook的默认端口4000,当然你也可以搭建一个web服务器。还有就是希望这个容器只是提供gitbook服务,至于md文档我放置在CentOS7的/data/gitbook/books目录就可以,后期的管理更加方便。

使用Docker快速搭建Gitbook_docker_03

4 Gitbook服务

容器创建好了,接下来就是进入容器内部使用gitbook了

docker exec -it my_gitbook /bin/bash

前面讲项目目录文件/data/gitbook/books映射到容器的/srv/gitbook/books目录了,现在进入该目录初始化gitbook项目并启动预览服务即可

cd /srv/gitbook/booksgitbook init .
gitbook serve . &

5 预览

如果上面的一切都OK的话,你就可以通过浏览器访问你的gitbook项目了。

使用Docker快速搭建Gitbook_docker_04

6 GitBook 服务多开

gitbook启动的web 服务默认监听4000端口,而重启监控进程默认监听35729端口。

一般这样可以启动一个电子书web服务:

gitbook serve /somepath/your_docuemtn_dir/

本地就可以这样来访问:  http://localhost:4000

如果要启动另一部电子书服务的话, 就需要同时修改web端口和监控进程端口, 类似这样:

gitbook serve --lrport 35288 --port 4001 /path2/your_another_doc_dir/
指定端口号再启动
gitbook serve --lrport 35730 --port 4001

7 构建一个自定义的 镜像

编写Dockerfile

FROM node:7

MAINTAINER Wenyu<admin@zhaowenyu.com>

ARG VERSION=3.2.3

LABEL versinotallow=$VERSION

RUN npm install --global gitbook-cli &&\
  gitbook fetch ${VERSION} &&\
  npm cache clear &&\
  rm -rf /tmp/*

RUN wget -nv -O- https://download.calibre-ebook.com/linux-installer.sh | sh /dev/stdin

WORKDIR /srv/gitbook

VOLUME /srv/gitbook /srv/html

EXPOSE 4000 35729

CMD /usr/local/bin/gitbook serve

有了Dockerfile,就可以创建镜像了:

docker build -t gitbook:v2 .

最后,可以通过以下命令创建容器:

docker run -itd --name="my_gitbook2" -h="my_gitbook2" -p 4000:4000 -p 35729:35729 -v /data/books/:/srv/gitbook/books 0e5c /bin/bash

8 GitBook 常用命令:

gitbook init //初始化目录文件
gitbook help //列出gitbook所有的命令
gitbook build //生成静态网页
gitbook serve //生成静态网页并运行服务器
gitbook ls //列出本地所有的gitbook版本
gitbook ls-remote //列出远程可用的gitbook版本
gitbook update //更新到gitbook的最新版本

9 后记

上面使用了一个简单的方法搭建了gitbook服务,其实一开始我并没有这样想,开始我是想先安装nodejs,然后安装npm,然后安装cnpm,然后安装gitbook,然后....

还有就是上面的搭建好了之后还有很多可以优化的地方,比如:

  • 1.给CVM的IP地址申请一个域名解析到该IP
  • 2.在这个CentOS7上搭建一个git Server,以后push md文件就使用git方式
  • 3.gitbook serve本身的并发不高,后续可以搭建一个nginx Web服务器代理

收录于合集 #docker

上一篇Docker将容器制作成镜像并上传docker hub仓库下一篇使用Docker快速部署Gitlab


阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: Docker