如何在XSwitch Docker镜像中添加你需要的东西

XSwitch主打定制,因此,量身定作定制一个你需要的Docker镜像也是XSwitch必备的功能。

我们以如何在XSwitch中使用Edge TTS这篇文章为例。考虑到Docker镜像的大小,我们并没有将edge-tts内置到通用版的Docker镜像中。这样,用户在使用时就需要自行安装。如果Docker镜像重启,就又需要重新安装,有时候这不是你期户的,下面,我们带你实现你自己的Docker镜像。

docker commit

最简单的方法就是通过docker commit制作自己的镜像。执行如下命令:

make bash                            # 进入XSwitch容器
apt-get update                       # 更新Linux软件源数据
apt-get install python3-pip          # 安装Python pip
pip install edge-tts                 # 安装edge-tts

Ctrl + D退出容器,在外面执行:

docker commit xswitch my-xswitch:v1.0

然后,你就有了自己的镜像了。修改docker-compose.yml,将image:换成你自己的镜像,如:

image: my-xswitch:v1.0

然后重新Docker就可以了。在此,直接执行make up就行,不需要先make down,因为.yml文件变了容器会自动重建。

以后,再也不用每次都重装edge-tts了。

关于dockcer commit更多的用法可以参考这里

docker build

当然,你也可以使用经典的docker build来做这个事情,先写一个Dockerfile,内容如下:

FROM ccr.ccs.tencentyun.com/free/xswitch-lua-js-free:4.0.2
RUN apt-get update && apt-get install python3-pip && pip install edge-tts

然后在命令行上直接执行如下命令build你自己的镜像:

docker build -t my-xswitch:1.0 .

其中-t指定镜像的名字和标签。

殊途同归。关于docker build更多解释见这里

内网

怎么把Docker镜像复制到你的内网上呢?也很简单,记住以下两个命令就好了:

docker save
docker import

如果不清楚这两个命令怎么用,可以查询Docker命令手册,这个,作为课后作业吧 :)。