为Docker部署的Minecraft服务器配置图标变量遇错求助
使用itzg Minecraft Docker镜像配置服务器图标失败问题
背景
我用itzg的minecraft-server镜像搭建了Docker版MC服务器,首次部署成功且已正常游戏。现在想给服务器添加图标优化视觉效果,通过docker-compose.yml启动容器时遇到了错误。
配置情况
我的docker-compose.yml配置如下:
services: minecraft: # 指定要拉取的镜像(可加:latest) image: itzg/minecraft-server container_name: minecraft-server # 将数据目录挂载到本地可访问路径 volumes: - ~/Documents/docker/Minecraft:/data ports: - 25565:25565 environment: # 必填项 EULA: "TRUE" # 推荐配置 OPS: "duxt3r__" ENABLE_WHITELIST: "TRUE" ENFORCE_WHITELIST: "TRUE" MEMORY: "4G" # 可选配置 VERSION: "1.20.2" TYPE: "BUKKIT" MOTD: "\u00A7lVersion \u00A76[1.20.2] \u00A70--- !SURVIVAL! --- Version \u00A7a0.2 \u00A77patch:RAM=4GB, Cosmetics\u00A7r\n(server is currently in ALPHA version)" MAX_PLAYERS: 10 ICON: ~/Documents/docker/Minecraft/server-icon.png tty: true stdin_open: true # 容器失败时尝试重启3次 restart: on-failure:3
问题
执行sudo docker-compose up -d启动服务器时,Portainer控制台输出错误:
[init] ERROR: /home/ubuntu/Documents/docker/Minecraft/server-icon.png does not appear to be a URL or existing file
已尝试操作
- 将文件名改为"server-icon.png"并检查图片尺寸,根据镜像说明文件会自动缩放转换格式,因此排除该问题。
- 尝试过多种路径写法:
~/Documents/docker/Minecraft/server-icon.png /home/ubuntu/Documents/docker/Minecraft/server-icon.png home/ubuntu/Documents/docker/Minecraft/server-icon.png https://home/ubuntu/Documents/docker/Minecraft/server-icon.png - 反复确认server-icon.png确实在指定路径下。
解决方案
错误原因
容器内部无法直接访问宿主机的本地路径——你配置的ICON变量填的是宿主机的路径,但容器运行时只会在自己的文件系统里查找,或者识别网络URL,所以找不到这个文件。
两种解决方法
直接放入挂载的/data目录
把server-icon.png放到你挂载的~/Documents/docker/Minecraft目录下(对应容器内部的/data目录),然后把ICON变量的值改成server-icon.png或者/data/server-icon.png。容器会自动在/data目录下查找这个文件,甚至你如果直接把图标放到/data目录下,不设置ICON变量也能自动识别使用。额外挂载图标目录
如果你不想移动文件,需要在volumes里额外挂载图标所在的目录,比如:volumes: - ~/Documents/docker/Minecraft:/data - ~/Documents/docker/Minecraft:/icons # 额外挂载图标目录到容器内的/icons路径然后把
ICON变量设为/icons/server-icon.png,这样容器就能访问到这个文件了。
内容的提问来源于stack exchange,提问作者duxt3r__
相关产品推荐
相关产品推荐

