为了给Kodi同步数据,在Openwrt上用Docker安装MariaDB

   用Lean大佬的旧版Openwrt固件跑x86软路由已经2年多,并且在上面安装了MariaDB给Kodi同步数据库。最近因为老版本固件samba不支持samba4导致我的Chromebook无法访问文件共享,所以必须重新编译固件,并且也顺便调整一些功能,比如升级OwnTone

  新固件编译很顺利,但是使用遇到了新问题。samba4已经可以使用,MariaDB则好像Lean的源码中有bug,始终无法成功启动。不得已只能另辟蹊径,用Docker。

  编译固件时luci app中增加luci-dockerman-app。进路由器确认dockerd已经启动。

  为了方便管理docker,首先安装portainer:

docker volume create portainer_data

docker run -d -p 8000:8000 -p 9443:9443 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:latest

然后打开portainer: https://IPofOpenwrt:9443;

选择默认的local environment;


创建专用于MariaDB的volume, 左侧点击volumes,新建,填入name,创建即可。不指定路径的话,Openwrt上默认volume实体路径在/opt/volumes/;这样即使MariaDB的container被删,数据还可以继续存在于主机的实体目录上。

创建MariaDB的container;

tag不要用latest,11.0+的mariadb docker image不再包含mysql。

使用10.11.6版本:tag:mariadb:10.11.6


2023.12.24更新:

不建议用mariadb,遇到了问题,kodi很卡,查看kodi和maraidb的log发现是一直在尝试dns解析,每次访问数据库时就会卡很久,不知是否和openwrt有关,以前没有这个问题。我重新编译过openwrt,也升级过maraidb的docker 镜像版本,不确定是哪个导致的。没时间也不擅长再深入的找问题了。最后还是按照kodi官方页面用了mysql的docker。

以下配置和mysql的略有不同。

--------------------------------------------------------------------

在Manual network port publishing中增加3306到3306;

advanced container settings中Volume新增mapping,container填/var/lib/mysql,volume选刚刚创建的那个,

添加ENV字段MYSQL_ROOT_PASSWORD,值就是自己选一个密码作为数据库的root密码,Restart policy选unless stopped;

点击deploy创建成功。

之后将container内的mariadb配置文件所在路径映射到主机:

docker cp  [container name]:/etc/mysql  /etc/mysql

回到portainer,停止container,点编辑,在advanced container settings中Volumn添加一条mapping,类型为bind,container和host中的路径都为/etc/mysql;

再次启动container,登录container进入mysql操作:

docker exec -it [container name] bash

下面就可以按照Kodi的教程来连接此数据库同步了。

如果为了更方便的管理,可以继续添加adminer镜像的container,只要设置端口映射8080到8080就可以deploy。然后打开192.168.1.1:8080,在server一栏填入192.168.1.1即可登录。



参考链接:https://levelup.gitconnected.com/portainer-the-easy-way-to-manage-docker-a982a17146c1

                    https://docs.docker.com/storage/volumes/#adding-a-data-volume

                    https://www.youtube.com/watch?v=p2PH_YPCsis



Comments

Popular posts from this blog

Nvidia Shield TV 2017 国行直接刷美版8.01固件

openwrt路由器忘记IP或端口等无法登录的解决方法

windows7 U盘安装出现"设备驱动器未找到" “no device drivers were found”