如何扩展代码块依赖库
依赖库持久化
以下操作需要在服务运行中状态下进行,仅需首次完成一次即可,后续安装扩展库时无需操作
-
创建依赖库挂载目录(实际目录可自定义),如:
mkdir -p /data/mingdao/script/volume/command/package/python-3.6/
mkdir -p /data/mingdao/script/volume/command/package/nodejs-10.18.0/ -
获取预置依赖库
- 微服务版本>=5.1.0
- 微服务版本<5.1.0
docker cp $(docker ps | grep command | awk '{print $1}'):/usr/local/lib/python3.6/site-packages/ /data/mingdao/script/volume/command/package/python-3.6/
docker cp $(docker ps | grep command | awk '{print $1}'):/usr/local/node-10.18.0/lib/node_modules/ /data/mingdao/script/volume/command/package/nodejs-10.18.0/docker cp $(docker ps | grep community | awk '{print $1}'):/usr/local/lib/python3.6/site-packages/ /data/mingdao/script/volume/command/package/python-3.6/
docker cp $(docker ps | grep community | awk '{print $1}'):/usr/local/node-10.18.0/lib/node_modules/ /data/mingdao/script/volume/command/package/nodejs-10.18.0/ -
修改
docker-compose.yaml
,将宿主机的依赖库目录挂载到容器内- 微服务版本>=5.1.0
- 微服务版本<5.1.0
services:
command:
volumes:
- ./volume/command/package/python-3.6/site-packages/:/usr/local/lib/python3.6/site-packages/
- ./volume/command/package/nodejs-10.18.0/node_modules/:/usr/local/node-10.18.0/lib/node_modules/services:
app:
volumes:
- ./volume/command/package/python-3.6/site-packages/:/usr/local/lib/python3.6/site-packages/
- ./volume/command/package/nodejs-10.18.0/node_modules/:/usr/local/node-10.18.0/lib/node_modules/ -
管理器根目录下执行以下命令,重启服务
bash ./service.sh restartall
在线安装扩展库
提醒
- 必须先完成“依赖库持久化”步骤,将容器内的依赖库目录持久化挂载到宿主机上,否则容器重启后扩展库需要重新安装
- 在线安装扩展库需确保服务器可以访问互联网
Python
以安装 python-dateutil
扩展库为例:
- 微服务版本>=5.1.0
- 微服务版本<5.1.0
-
进入 command 容器
docker exec -it $(docker ps | grep command | awk '{print $1}') bash
-
在 command 容器中安装
python-dateutil
扩展库pip3 install --target=/usr/local/lib/python3.6/site-packages/ python-dateutil
-
进入 community 容器
docker exec -it $(docker ps | grep mingdaoyun-community | awk '{print $1}') bash
-
在 community 容器中安装
python-dateutil
扩展库pip3 install --target=/usr/local/lib/python3.6/site-packages/ python-dateutil
安装完成后可在宿主机默认路径 /data/mingdao/script/volume/command/package/python-3.6/site-packages/
下查看新安装的扩展库。
JavaScript (基于 Nodejs)
以安装 dayjs
扩展库为例:
- 微服务版本>=5.1.0
- 微服务版本<5.1.0
-
进入 command 容器
docker exec -it $(docker ps | grep command | awk '{print $1}') bash
-
在 command 容器中安装
dayjs
扩展库/usr/local/node-10.18.0/bin/npm -g install dayjs
-
进入 community 容器
docker exec -it $(docker ps | grep mingdaoyun-community | awk '{print $1}') bash
-
在 community 容器中安装
dayjs
扩展库/usr/local/node-10.18.0/bin/npm -g install dayjs
安装完成后可在宿主机默认路径 /data/mingdao/script/volume/command/package/nodejs-10.18.0/node_modules/
下查看新安装的扩展库。
离线安装扩展库
提醒
- 必须先完成“依赖库持久化”步骤,将容器内的依赖库目录持久化挂载到宿主机上,否则容器重启后扩展库需要重新安装
- 在服务器无法访问互联网 或 提供的扩展库是离线包文件时可以参考离线安装扩展库的方法