docker方式实现gitbook的离线安装

1.在离线机器上安装docker,参照:https://blog.csdn.net/strut/article/details/109603080

2. 找一台相同架构的联网机器,安装docker并制作docker镜像(安装docker参照:参照:https://blog.csdn.net/strut/article/details/109603080

   a) 编写Dockerfile

mkdir gitbook
cd gitbook
vi Dockerfile

     以下是Dockerfile的内容

# Use an official Node.js runtime as a parent image
FROM node:8.11.1
# Set npm registry to China Taobao and install Gitbook
RUN npm config set registry https://registry.npm.taobao.org && \
    npm install gitbook-cli -g && \
    gitbook -V && \
    mkdir /gitbook && \
    apt-get update && \
    apt-get -y install libnss3 && \
    apt-get -y install libxcomposite1 && \
   apt-get -y install libxdamage1 && \
    apt-get -y install libXi6 && \
    apt-get -y install libgl1-mesa-glx && \
    mkdir -p /opt/calibre && \
    wget https://download.calibre-ebook.com/3.39.1/calibre-3.39.1-x86_64.txz && \
    tar -vxf calibre-3.39.1-x86_64.txz -C /opt/calibre/ && \
    /opt/calibre/calibre_postinstall && \
    gitbook init /gitbook

# Make port 4000 available to the world outside this container
EXPOSE 4000

CMD ["sh", "-c", "gitbook install /gitbook; setsid gitbook serve /gitbook"]

b) 生成镜像 

# 最后是镜像名和版本,可以根据实际情况更改
sudo docker build -t gitbook_calibre:3.2.3 .

 c) 运行镜像

# 启动可能会较慢
docker run -d -p 4000:4000 -v /home/docker_practice:/gitbook gitbook_calibre:3.2.3

d) 解决导出pdf中文不显示(不需要可忽略)

       1、 docker attach 容器ID,进入容器

       2、在/gitbook/_book/search_index.json文件上添加plugins属性。

        "plugins": ["yahei"]

       3、配置pluginsConfigfontSettings属性,使用msyh > 微软雅黑字体

"pluginsConfig": {"fontSettings": {"family": "msyh","size": 2}}

       4、手动从windows系统的Fonts目录下复制msyh.ttc文件或msyh.ttf文件上传到Linux的/usr/share/fonts/truetype目录下

              找不到msyh.ttc文件可以从 控制面板 > 外观和个性化 > 字体 中复制对应的字体文件到/usr/share/fonts/truetype目录下

             也可以使用其他的字体文件,记得同步更改配置文件中fontSettings的属性值

--- 不存在truetype文件夹则新建

# mkdir -p /usr/share/fonts/truetype

       5、重新生成pdf

gitbook pdf ./ ./gitbook-notebook.pdf

3.打包镜像

     确定gitbook正常使用之后,将容器打包成镜像

docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]

如: docker commit -a "zhx" -m "gitbook" a404c6c174a2  mygitbook:v1 

OPTIONS说明:
-a :提交的镜像作者;
-c :使用Dockerfile指令来创建镜像;
-m :提交时的说明文字;
-p :在commit时,将容器暂停。

    将镜像保存为tar包

 

docker save [OPTIONS] IMAGE [IMAGE...]
如:docker save -o mygitbook.tar mygitbook:v1

3. 将打包的镜像放到离线机器

 

docker load [OPTIONS]

如:  docker load --input mygitbook.tar

OPTIONS 说明:

  • --input , -i : 指定导入的文件,代替 STDIN

  • --quiet , -q : 精简输出信息。

在新的机器上再此使用docker images命令查看本机的镜像,检查刚才load的镜像有没有加载进来,发现加载进来的镜像名称、标签均为none,使用docker tag eb40dcf64078 gitbook_calibre:3.2.3 修改为原来的镜像名称和标签名称,其中eb40dcf64078 为images id

4.在离线的机器上运行docker镜像

# 启动可能会较慢
docker run -d -p 4000:4000 -v /home/docker_practice:/gitbook gitbook_calibre:3.2.3

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值