From c59566d458bf34cea400a53caf330d90146a7754 Mon Sep 17 00:00:00 2001 From: nevinen <83165391+nevinen@users.noreply.github.com> Date: Fri, 28 May 2021 20:31:00 +0800 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20docker=20supports=20custom=20instal?= =?UTF-8?q?lation=20of=20pypi=20dependencies=20(#79)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ✨ docker 支持自定义安装 pypi 依赖 (#79) * 有些插件额外需要一些未安装的依赖,支持用户自己定义`requirements2.txt`,创建容器时即自动安装好,这样更新镜像或重建容器不影响这些插件的使用。 --- .gitignore | 3 +++ docker-compose.gen.yml | 6 +++--- s6/etc/cont-init.d/20-update | 3 +++ s6/etc/cont-init.d/40-redis | 2 +- utils/docker.md | 22 +++++++++++++++++----- 5 files changed, 27 insertions(+), 9 deletions(-) diff --git a/.gitignore b/.gitignore index b06ddb5..b58411f 100644 --- a/.gitignore +++ b/.gitignore @@ -123,6 +123,9 @@ docker-compose.yml plugins/ data/* pagermaid.egg-info/ +dump.rdb +keyword.list +requirements2.txt # Spyder project settings .spyderproject diff --git a/docker-compose.gen.yml b/docker-compose.gen.yml index 89cdd80..bfb91ff 100644 --- a/docker-compose.gen.yml +++ b/docker-compose.gen.yml @@ -10,6 +10,6 @@ services: volumes: - ./:/pagermaid/workdir environment: - - RUN_AS_ROOT=true # 是否以root权限运行pagermaid,true为是 - - PUID=917 # 当 RUN_AS_ROOT=false 才生效,即以普通用户权限运行pagermaid - - PGID=917 # 当 RUN_AS_ROOT=false 才生效,即以普通用户权限运行pagermaid + - RUN_AS_ROOT=true # 是否以root权限运行pagermaid,true为是,false为否 + - PUID=917 # 当 RUN_AS_ROOT=false时才生效,即以普通用户权限运行pagermaid,可以修改为你定义用户的UID + - PGID=917 # 当 RUN_AS_ROOT=false时才生效,即以普通用户权限运行pagermaid,可以修改为你定义用户的GID diff --git a/s6/etc/cont-init.d/20-update b/s6/etc/cont-init.d/20-update index b5f4318..bf3be59 100755 --- a/s6/etc/cont-init.d/20-update +++ b/s6/etc/cont-init.d/20-update @@ -5,4 +5,7 @@ git remote set-url origin https://github.com/Xtao-Labs/PagerMaid-Modify.git git pull pip install -r requirements.txt +if [ -s requirements2.txt ]; then + pip install -r requirements2.txt +fi exit 0 diff --git a/s6/etc/cont-init.d/40-redis b/s6/etc/cont-init.d/40-redis index fbc728a..8542c25 100755 --- a/s6/etc/cont-init.d/40-redis +++ b/s6/etc/cont-init.d/40-redis @@ -3,7 +3,7 @@ perl -i -pe "{ s|^dir /var/lib/redis|dir /pagermaid/workdir|; s|^save \d+ 1|save 60 1|; - }" /etc/redis/redis.conf +}" /etc/redis/redis.conf cd /pagermaid/workdir redis-server /etc/redis/redis.conf \ No newline at end of file diff --git a/utils/docker.md b/utils/docker.md index 1a5f054..54bc757 100644 --- a/utils/docker.md +++ b/utils/docker.md @@ -1,13 +1,23 @@ -## 一、一键脚本 +## 特点 + +- 容器在启动或重启时,将自动更新脚本并安装pip依赖。 + +- 包括redis缓存数据和插件在内,全部数据支持数据持久化,更新镜像或重建容器数据不丢失。 + +- 有些插件额外需要一些未安装的依赖,支持用户自己定义`requirements2.txt`,创建容器时即自动安装好,这样更新镜像或重建容器不影响这些插件的使用。 + +- 由用户自己选择以root权限还是以普通用户权限来运行pagermaid,以普通用户权限运行时更安全,但需要用户具有解决权限问题的能力。 + +## 一键脚本安装 ``` wget https://raw.githubusercontent.com/Xtao-Labs/PagerMaid-Modify/master/utils/docker.sh bash docker.sh ``` -*注:一键脚本安装的Docker将以root权限运行,在使用pagermaid时最方便。* +*注:一键脚本安装的Docker将以root权限运行,在使用pagermaid时最方便。如需要自定义,请使用docker-compose安装。* -## docker-compose 安装 +## docker-compose安装 1. 准备脚本 @@ -22,7 +32,9 @@ cp docker-compose.gen.yml docker-compose.yml 3. 如果会配置,就自己编辑刚刚复制的`config.yml`。如果不会就直接下一步。 -4. 启动容器`docker-compose up -d`。 +4. 有些插件还额外需要安装依赖包,这些依赖包初始状态是没有安装的,例如`neteasemusic`插件的依赖`eyed3` `pycryptodome`,`coin`插件的依赖`python-binance` `xmltodict`等等,你如果需要用到这些插件,并且希望容器自动将依赖安装好,可以将依赖列在当前目录下的`requirements2.txt`中(没有这个文件,需要你自己建立)。容器将在启动时自动安装这些依赖。有此`requirements2.txt`文件以后,重新部署容器或者更新镜像,都将自动安装这些依赖,不再需要重复地手动安装。 -5. 如第3步未配置`config.yml`,则运行`docker exec -it <容器名> bash utils/docker-config.sh`进行配置。 +5. 启动容器`docker-compose up -d`。 + +6. 如第3步未配置`config.yml`,则运行`docker exec -it <容器名> bash utils/docker-config.sh`进行配置。