上一篇文章用Docker搭建了Gitbook的环境:Docker搭建Gitbook,然后发现个小问题,问题不大,不过感觉Gitbook的版本实在太低了。
毕竟是7年前的镜像了,用gitbook -V
查看了下gitbook的版本,竟然是:0.3.4
于是,决定还是自己用Dockerfile制作个Gitbook的镜像好了。
自己用Dockerfile制作镜像也挺方便的,参考:Docker Dockerfile文件详解(制作自己的镜像)
也就是第一次生成镜像的时候花点时间。
一、制作Gitbook镜像
1.Dockerfile文件
node的版本反正用12点几的还是有问题,索性降到8,反正是没问题的。
因为我只是需要环境,并不是直接就生成电子书了,所以最后的CMD的命令也不需要执行。
Dockerfile文件内容如下:
1 | # Use an official Node.js runtime as a parent image |
2.生成镜像
因为有本地安装过,所以知道现在的gitbook版本是:3.2.3,不确定的话,这里的版本号自己看着写吧。自己编一个差不多的也行。
注意最后有个点表示当前目录,所以需要在Dockerfile文件所在的目录下运行此命令。
1 | docker build -t gitbook:3.2.3 . |
等待制作完成,估计需要几分钟。完成后用命令docker images
就可以看到 gitbook:3.2.3 这个镜像了。
二、运行Gitbook容器
1.运行Gitbook容器
1 | docker run -idt --name gitbook_cs -p 14001:4000 -v E:\SynologyDrive\Gitbook\cs_gitbook:/gitbook gitbook:3.2.3 /bin/bash |
–name gitbook_cs:容器名称,自己取
-p 14001:4000:把容器中的4000端口映射到本地14001端口,这个也随意
1 | # 进入容器 |
2.Error:no such file fontsettings.js
这个报错不一定会有,我用Win10装的Docker里有这个问题,用Ubuntu20.04 LTS的服务器上也是Docker里装,就没碰到这个报错。
执行gitbook serve
或gitbook build
都会报错:
1 | Error: ENOENT: no such file or directory, stat '***/_book/gitbook/gitbook-plugin-fontsettings/fontsettings.js' |
解决方法:
找到/root/.gitbook/versions/3.2.3/lib/output/website/copyPluginAssets.js
文件:
1 | return fs.copyDir( |
把confirm: true
修改为confirm: false
,注意有2处!
这个文件的路径中有个gitbook的版本号,找对应的版本号。可先在容器内查看找到此文件。
因为用的Docker,所以使用 Docker 容器修改方法如下:
1 | # 1.把copyPluginAssets.js文件从容器中拷到当前目录下 |
再执行gitbook serve
就没问题啦。
- 本文标题:Docker Dockerfile制作Gitbook镜像
- 本文作者:HDUZN
- 创建时间:2023-01-10 19:23:12
- 本文链接:http://hduzn.cn/2023/01/10/Docker-Dockerfile制作Gitbook镜像/
- 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!