统计
  • 文章总数:262 篇
  • 评论总数:0 条
  • 分类总数:14 个
  • 最后更新:2天前
原创数码玩机

关于群晖ContainerManager 24.x测试版的一些变化

本文阅读 3 分钟
首页 数码玩机 正文

群晖的Docker套件分为:Docker workerDocker Project Worker两种,区别是:

Docker worker支持DSM7.0-7.2,通过在conf/resource按照格式编辑后,安装过程会自动转换为docker-compose.yaml,且支持wizard变量,还支持自动在docker共享文件夹目录自动建立映射的文件夹,缺点:卸载套件会自动删除docker里面建立的文件夹。。。

举例套件:lobechat和百度网盘DSM7.1,均未使用"shares"自动文件夹

Docker Project Worker只支持DSM7.2,安装过程直接运行套件里面的docker-compose.yaml,支持建立复杂的项目,缺点:无法传递wizard变量到docker-compose.yaml

举例套件:百度网盘DSM7.2和qinglong、portainer-ce等等

本文主要讨论ContainerManager 20和24 的一些变化,以及Docker类套件在24不能正常运行的原因:
最新Docker都27了。。。)

1、/var/packages/ContainerManager/target/tool/docker_inspect权限变化

20里面docker_inspect权限是4755,套件可以获取到容器的状态。

24里面docker_inspect权限是0755只能root权限获取docker状态。

2917575705.png

但!!!官方示例Compile Docker Package - Gitlab里面是用docker_inspect的。。。而且也没有其它方法获取

DOCKER_INSPECT="/usr/local/bin/docker_inspect"
    status)
        "$DOCKER_INSPECT" "$GITLAB_NAME" | grep -q "\"Status\": \"running\"," || exit 1

目前的解决方法是。。。改权限

sudo chmod 4755 /usr/local/bin/docker_inspect

2、容器建立时的默认用户变化

ContainerManager20是使用容器预设的用户一般root,ContainerManager24则采用套件的用户,导致会出现容器初始化权限问题,如下图没有权限在容器内mkdir(容器内的初始化,非映射的文件夹)

302887304.png

2495785949.png

目前的解决方法是在docker-compose.yaml内增加:user: root

1108257427.png

3、其它的一些变化

ContainerManager24 中 Docker worker项目会保存转化后的docker-compose.yaml到var目录,Docker Project Worker项目会优化?.yaml保存为docker-compose.admin.yaml(我估计是为以后支持变量准备的?)

1907779822.png

37258239.png

4、最难受的一点。。。

群晖的docker compose up不支持自动建立文件夹,必须是已存在的,1panle套件胎死腹中。。。

5、提供两个Docker套件样板供分析

已删除版本限制:install_dep_packages="ContainerManager>=20.10.23-1432:ContainerManager<24.0.2-1520"

Docker worker
docker_lobechat_v1.0_DSM7.2.spk,去除DSM版本限制也支持DSM7.0、7.1

Docker Project Worker
docker_qinglong_v1.0_DSM7.2.spk

原创文章,作者:ERROR204,本文章内容未经书面许可禁止一切形式的转载:https://imnks.com/11496.html
群晖新套件:EasyNVR 网络摄像头管理 支持DSM7
« 上一篇 02-15