MySQL Docker 中的挂载目录权限在外部 SSD 上混乱

MySQL in Docker mounted directory permissions are messed up on external SSD

我 运行 MySQL 在 docker 图像中,我正在从容器内的主机挂载一个目录以保持数据库 ./db:/var/lib/mysql
由于数据变得非常大,我不得不将所有内容都移动到我的外部 SSD 上。现在好像是挂载目录的权限搞乱了。当我让 MySQL 容器初始化 ./db 目录时,一切都很好。但是如果我停止容器,移除外部 SSD,然后将其重新连接并再次启动容器,MySQL 容器会不断重启,并记录如下内容:

chown: changing ownership of '/var/lib/mysql/._binlog.000004': Operation not permitted

任何关于如何解决这个问题的提示都将不胜感激:) 谢谢!

好的,我不确定这是否是解决此问题的最佳方法,但目前我可以解决此问题。请让我知道这是否完全愚蠢并且有更好的解决方案。

我尝试了 运行 带有 docker 本身的容器并通过了 --user "$(id -u):$(id -g)" 并且成功了。
不幸的是,我们不能在 docker-compose 文件中执行子 bash 命令,所以我不得不创建自己的脚本来设置环境变量并运行 docker-compose:

DOCKER_COMPOSE_USER=$(id -u):$(id -g) docker-compose up -d

docker-compose.yml中:

user: ${DOCKER_COMPOSE_USER}

成功了!