Skip to content

[Bug Report] 使用Docker运行Daemon导致容器化映射忽视显式指定的工作目录 #1883

@FYWinds

Description

@FYWinds

Platform

Ubuntu 24.04

Panel Version

10.10.3

Daemon Version (Optional)

10.10.3 (docker)

Recurrence Probability

100%

Bug Description

前提条件:使用docker部署MCSM,同时在自定义工作目录的实例开启容器化

导致原因是这里的判断逻辑,当在docker中运行配置了实例目录后会被强制使用此目录+uuid,覆盖显式指定的工作目录

let cwd = instance.absoluteCwdPath();
const hostRealPath = toText(process.env.MCSM_DOCKER_WORKSPACE_PATH);
if (hostRealPath) {
cwd = path.normalize(path.join(hostRealPath, instance.instanceUuid));
}

日志:

[INFO] 正在启动...
[INFO] 已挂载工作目录:/srv/data/mc/daemon/data/InstanceData/73d05ab1c3694c269bb915e8d5f3c76e --> /data

[INFO] 已为实例开放以下端口:
[INFO] 外部访问端口:25565 -> 容器内端口:25565 / 协议:tcp
[ERROR] (HTTP code 400) bad parameter - invalid mount config for type "bind": bind source path does not exist: /srv/data/mc/daemon/data/InstanceData/73d05ab1c3694c269bb915e8d5f3c76e 

*** 可能的解决方案:

  • 提醒用户将宿主机自定义实例的目录映射到mcsm daemon容器同目录(提供文件访问),同时显式指定的cwd优先度高于环境变量

Metadata

Metadata

Assignees

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions