itzg / docker-minecraft-server

Docker image that provides a Minecraft Server that will automatically download selected version at startup
https://docker-minecraft-server.readthedocs.io/
Apache License 2.0
9.25k stars 1.53k forks source link

Error Failed to auto-install CurseForge modpack #2804

Closed colepez closed 2 months ago

colepez commented 5 months ago

Describe the problem

Trying to run All of the Mods 9 on docker compose with a tailscale container as a proxy for it. The vanilla docker compose works fine. Whenever I try to run it it starts to download some of the mods and then presents with this error.

Container definition

version: "3" services: tailscale-client: image: tailscale/tailscale:latest container_name: tailscale hostname: tailscale-minecraft # This name will be the one on the tailscale network environment: TS_AUTHKEY: HIDDEN TS_STATE_DIR: "/var/lib/tailscale"

TS_USERSPACE: "FALSE" # Only needed if using AUTOPAUSE

volumes:
  - ${PWD}/ts-minecraft/state:/var/lib/tailscale
  - /dev/net/tun:/dev/net/tun
cap_add:
  - net_admin
  - sys_module
restart: unless-stopped

mc: image: itzg/minecraft-server depends_on:

Container logs

[mc-image-helper] 17:41:21.009 DEBUG : Getting mod file metadata for 358304:4884039 [mc-image-helper] 17:41:21.009 DEBUG : JSON FETCH: uri=https://api.curseforge.com/v1/mods/358304/files/4884039 headers=[user-agent: itzg/mc-image-helper/1.38.13 (cmd=install-curseforge), x-fetch-session: 3dc9be33-f7ee-4a73-8712-9663630afb41, x-api-key: [redacted], accept: application/json, host: api.curseforge.com] [mc-image-helper] 17:41:21.024 DEBUG : Download/confirm mod logprot-1.20.1-3.3.jar @ 358304:4884039 [mc-image-helper] 17:41:21.024 INFO : Downloaded mod file mods/tombstone-1.20.1-8.6.5.jar [mc-image-helper] 17:41:21.024 DEBUG : FILE FETCH: uri=https://edge.forgecdn.net/files/4884/39/logprot-1.20.1-3.3.jar headers=[user-agent: itzg/mc-image-helper/1.38.13 (cmd=install-curseforge), x-fetch-session: 3dc9be33-f7ee-4a73-8712-9663630afb41, x-api-key: [redacted], host: edge.forgecdn.net, accept: /] [mc-image-helper] 17:41:21.024 DEBUG : Download of https://edge.forgecdn.net/files/5201/363/tombstone-1.20.1-8.6.5.jar took 3s 408ms at 623 KB/s [mc-image-helper] 17:41:21.029 INFO : Downloaded mod file mods/endertanks-forge-1.20.1-1.2.jar [mc-image-helper] 17:41:21.029 DEBUG : Download of https://edge.forgecdn.net/files/4859/169/endertanks-forge-1.20.1-1.2.jar took 523ms at 510 KB/s [mc-image-helper] 17:41:21.053 DEBUG : FILE FETCH: uri=https://mediafilez.forgecdn.net/files/4884/39/logprot-1.20.1-3.3.jar headers=[user-agent: itzg/mc-image-helper/1.38.13 (cmd=install-curseforge), x-fetch-session: 3dc9be33-f7ee-4a73-8712-9663630afb41, x-api-key: [redacted], host: mediafilez.forgecdn.net, accept: /] [mc-image-helper] 17:41:21.079 INFO : Downloaded mod file mods/ftb-teams-forge-2001.3.0.jar [mc-image-helper] 17:41:21.079 DEBUG : Download of https://edge.forgecdn.net/files/5267/190/ftb-teams-forge-2001.3.0.jar took 4s 436ms at 55 KB/s [mc-image-helper] 17:41:21.081 INFO : Downloaded mod file mods/logprot-1.20.1-3.3.jar [mc-image-helper] 17:41:21.081 DEBUG : Download of https://edge.forgecdn.net/files/4884/39/logprot-1.20.1-3.3.jar took 57ms at 214 KB/s [mc-image-helper] 17:41:21.098 ERROR : 'install-curseforge' command failed. Version is 1.38.13 reactor.core.Exceptions$ReactiveException: java.net.UnknownHostException: Failed to resolve 'mediafilez.forgecdn.net' [A(1)] at reactor.core.Exceptions.propagate(Exceptions.java:408) at reactor.core.publisher.BlockingSingleSubscriber.blockingGet(BlockingSingleSubscriber.java:101) at reactor.core.publisher.Mono.block(Mono.java:1712) at me.itzg.helpers.curseforge.CurseForgeInstaller.processModpack(CurseForgeInstaller.java:581) at me.itzg.helpers.curseforge.CurseForgeInstaller.resolveModpackFileAndProcess(CurseForgeInstaller.java:395) at me.itzg.helpers.curseforge.CurseForgeInstaller.installByRetrievingModpackZip(CurseForgeInstaller.java:257) at me.itzg.helpers.curseforge.CurseForgeInstaller.lambda$install$3(CurseForgeInstaller.java:176) at me.itzg.helpers.curseforge.CurseForgeInstaller.install(CurseForgeInstaller.java:213) at me.itzg.helpers.curseforge.CurseForgeInstaller.install(CurseForgeInstaller.java:175) at me.itzg.helpers.curseforge.InstallCurseForgeCommand.call(InstallCurseForgeCommand.java:226) at me.itzg.helpers.curseforge.InstallCurseForgeCommand.call(InstallCurseForgeCommand.java:30) at picocli.CommandLine.executeUserObject(CommandLine.java:2041) at picocli.CommandLine.access$1500(CommandLine.java:148) at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2461) at picocli.CommandLine$RunLast.handle(CommandLine.java:2453) at picocli.CommandLine$RunLast.handle(CommandLine.java:2415) at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2273) at picocli.CommandLine$RunLast.execute(CommandLine.java:2417) at picocli.CommandLine.execute(CommandLine.java:2170) at me.itzg.helpers.McImageHelper.main(McImageHelper.java:159) Suppressed: java.lang.Exception: #block terminated with an error at reactor.core.publisher.BlockingSingleSubscriber.blockingGet(BlockingSingleSubscriber.java:103) ... 18 common frames omitted Caused by: java.net.UnknownHostException: Failed to resolve 'mediafilez.forgecdn.net' [A(1)] at io.netty.resolver.dns.DnsResolveContext.finishResolve(DnsResolveContext.java:1151) Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException: Error has been observed at the following site(s): *__checkpoint ⇢ Downloading file from modpack 276951:5068863 Original Stack Trace: at io.netty.resolver.dns.DnsResolveContext.finishResolve(DnsResolveContext.java:1151) at io.netty.resolver.dns.DnsResolveContext.tryToFinishResolve(DnsResolveContext.java:1098) at io.netty.resolver.dns.DnsResolveContext.query(DnsResolveContext.java:457) at io.netty.resolver.dns.DnsResolveContext.onResponse(DnsResolveContext.java:664) at io.netty.resolver.dns.DnsResolveContext.access$500(DnsResolveContext.java:69) at io.netty.resolver.dns.DnsResolveContext$2.operationComplete(DnsResolveContext.java:515) at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:590) at io.netty.util.concurrent.DefaultPromise.notifyListeners0(DefaultPromise.java:583) at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:559) at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:492) at io.netty.util.concurrent.DefaultPromise.setValue0(DefaultPromise.java:636) at io.netty.util.concurrent.DefaultPromise.setSuccess0(DefaultPromise.java:625) at io.netty.util.concurrent.DefaultPromise.trySuccess(DefaultPromise.java:105) at io.netty.resolver.dns.DnsQueryContext.trySuccess(DnsQueryContext.java:345) at io.netty.resolver.dns.DnsQueryContext.finishSuccess(DnsQueryContext.java:336) at io.netty.resolver.dns.DnsNameResolver$DnsResponseHandler.channelRead(DnsNameResolver.java:1384) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) at io.netty.channel.epoll.EpollDatagramChannel.processPacket(EpollDatagramChannel.java:662) at io.netty.channel.epoll.EpollDatagramChannel.recvmsg(EpollDatagramChannel.java:697) at io.netty.channel.epoll.EpollDatagramChannel.access$300(EpollDatagramChannel.java:56) at io.netty.channel.epoll.EpollDatagramChannel$EpollDatagramChannelUnsafe.epollInReady(EpollDatagramChannel.java:536) at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:509) at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:407) at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) at java.base/java.lang.Thread.run(Unknown Source) Caused by: io.netty.resolver.dns.DnsErrorCauseException: Query failed with SERVFAIL at io.netty.resolver.dns.DnsResolveContext.onResponse(..)(Unknown Source)

itzg commented 5 months ago

You have a DNS issue on your system

Caused by: java.net.UnknownHostException: Failed to resolve 'mediafilez.forgecdn.net' [A(1)]
github-actions[bot] commented 4 months ago

This issue is stale because it has been open 30 days with no activity. Please add a comment describing the reason to keep this issue open.

vercas commented 4 months ago

I have the same problem, and my DNS server indicates that everything is fine. The domain is resolving successfully.
Another hostname also appears to fail:

[mc-image-helper] 12:43:43.833 ERROR : 'install-curseforge' command failed. Version is 1.38.15
reactor.core.Exceptions$ReactiveException: java.net.UnknownHostException: Failed to resolve 'edge.forgecdn.net' [A(1)]
        at reactor.core.Exceptions.propagate(Exceptions.java:408)
        at reactor.core.publisher.BlockingSingleSubscriber.blockingGet(BlockingSingleSubscriber.java:101)
        at reactor.core.publisher.Mono.block(Mono.java:1712)
        at me.itzg.helpers.curseforge.CurseForgeInstaller.processModpack(CurseForgeInstaller.java:581)
        at me.itzg.helpers.curseforge.CurseForgeInstaller.resolveModpackFileAndProcess(CurseForgeInstaller.java:395)
        at me.itzg.helpers.curseforge.CurseForgeInstaller.installByRetrievingModpackZip(CurseForgeInstaller.java:257)
        at me.itzg.helpers.curseforge.CurseForgeInstaller.lambda$install$3(CurseForgeInstaller.java:176)
        at me.itzg.helpers.curseforge.CurseForgeInstaller.install(CurseForgeInstaller.java:213)
        at me.itzg.helpers.curseforge.CurseForgeInstaller.install(CurseForgeInstaller.java:175)
        at me.itzg.helpers.curseforge.InstallCurseForgeCommand.call(InstallCurseForgeCommand.java:213)
        at me.itzg.helpers.curseforge.InstallCurseForgeCommand.call(InstallCurseForgeCommand.java:29)
        at picocli.CommandLine.executeUserObject(CommandLine.java:2045)
        at picocli.CommandLine.access$1500(CommandLine.java:148)
        at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2465)
        at picocli.CommandLine$RunLast.handle(CommandLine.java:2457)
        at picocli.CommandLine$RunLast.handle(CommandLine.java:2419)
        at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2277)
        at picocli.CommandLine$RunLast.execute(CommandLine.java:2421)
        at picocli.CommandLine.execute(CommandLine.java:2174)
        at me.itzg.helpers.McImageHelper.main(McImageHelper.java:159)
        Suppressed: java.lang.Exception: #block terminated with an error
                at reactor.core.publisher.BlockingSingleSubscriber.blockingGet(BlockingSingleSubscriber.java:103)
                ... 18 common frames omitted
Caused by: java.net.UnknownHostException: Failed to resolve 'edge.forgecdn.net' [A(1)]
        at io.netty.resolver.dns.DnsResolveContext.finishResolve(DnsResolveContext.java:1151)
        Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException:
Error has been observed at the following site(s):
        *__checkpoint ⇢ Downloading file from modpack 511733:4886998
Original Stack Trace:
                at io.netty.resolver.dns.DnsResolveContext.finishResolve(DnsResolveContext.java:1151)
                at io.netty.resolver.dns.DnsResolveContext.tryToFinishResolve(DnsResolveContext.java:1098)
                at io.netty.resolver.dns.DnsResolveContext.query(DnsResolveContext.java:457)
                at io.netty.resolver.dns.DnsResolveContext.onResponse(DnsResolveContext.java:664)
                at io.netty.resolver.dns.DnsResolveContext.access$500(DnsResolveContext.java:69)
                at io.netty.resolver.dns.DnsResolveContext$2.operationComplete(DnsResolveContext.java:515)
                at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:590)
                at io.netty.util.concurrent.DefaultPromise.notifyListeners0(DefaultPromise.java:583)
                at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:559)
                at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:492)
                at io.netty.util.concurrent.DefaultPromise.setValue0(DefaultPromise.java:636)
                at io.netty.util.concurrent.DefaultPromise.setSuccess0(DefaultPromise.java:625)
                at io.netty.util.concurrent.DefaultPromise.trySuccess(DefaultPromise.java:105)
                at io.netty.resolver.dns.DnsQueryContext.trySuccess(DnsQueryContext.java:345)
                at io.netty.resolver.dns.DnsQueryContext.finishSuccess(DnsQueryContext.java:336)
                at io.netty.resolver.dns.DnsNameResolver$DnsResponseHandler.channelRead(DnsNameResolver.java:1384)
                at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)
                at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
                at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
                at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103)
                at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)
                at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
                at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
                at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)
                at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440)
                at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
                at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)
                at io.netty.channel.epoll.EpollDatagramChannel.processPacket(EpollDatagramChannel.java:662)
                at io.netty.channel.epoll.EpollDatagramChannel.recvmsg(EpollDatagramChannel.java:697)
                at io.netty.channel.epoll.EpollDatagramChannel.access$300(EpollDatagramChannel.java:56)
                at io.netty.channel.epoll.EpollDatagramChannel$EpollDatagramChannelUnsafe.epollInReady(EpollDatagramChannel.java:536)
                at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:501)
                at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:399)
                at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
                at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
                at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
                at java.base/java.lang.Thread.run(Unknown Source)
Caused by: io.netty.resolver.dns.DnsErrorCauseException: Query failed with SERVFAIL
        at io.netty.resolver.dns.DnsResolveContext.onResponse(..)(Unknown Source)
[init] ERROR failed to auto-install CurseForge modpack

It doesn't complain about any other hostnames (such as api.curseforge.com) - just the one above and the one in the initial bug report.

vercas commented 4 months ago

As a temporary workaround, I've added this to the Compose service definition:

    extra_hosts:
      - "edge.forgecdn.net:13.224.245.126"
      - "mediafilez.forgecdn.net:18.164.68.129"

And DNS resolution works fine...
Moving onto further problems now.

github-actions[bot] commented 3 months ago

This issue is stale because it has been open 30 days with no activity. Please add a comment describing the reason to keep this issue open.