docker / dockercraft

Docker + Minecraft = Dockercraft
Apache License 2.0
7.19k stars 389 forks source link

Cuberite and Docker updates #67

Closed aduermael closed 7 years ago

aduermael commented 7 years ago

I wanted to demo Dockercraft at Minecon and realized Cuberite has been updated, and that we had to update some of the content we have in /world folder. Such as the webadmin, many LUA plugins in /Plugins, etc.

I also updated Docker from 1.11.1 to 1.12.1.

It seems more stable now, also I saw this log: Compatible clients: 1.8.x, 1.9.x, 1.10.x. So I guess 1.10.x Minecraft clients are now supported! :)

cc @gdevillele, @dave-tucker

dave-tucker commented 7 years ago

@aduermael I've just tested it and I can't seem to use it for more than a few seconds without a crash...

[14:02:23] Update container with ID: 293694773bf56f265ef6fafa5ccf8b7c3fefd7bf0da6cc7495f67b1d421b6c09 state: 2
fatal error: concurrent map writes
goroutine 36 [running]:
runtime.throw(0x88dde0, 0x15)
        /usr/local/go/src/runtime/panic.go:547 +0x90 fp=0xc820045c60 sp=0xc820045c48
runtime.mapassign1(0x7241e0, 0xc820071050, 0xc820045d80, 0xc820045d58)
        /usr/local/go/src/runtime/hashmap.go:445 +0xb1 fp=0xc820045d08 sp=0xc820045c60
main.(*Daemon).statCallback(0xc820071080, 0xc82006ad80, 0x40, 0xc82030c000, 0x0, 0x0, 0x0, 0x0)
        /go/src/github.com/docker/dockercraft/proxy.go:197 +0x21d fp=0xc820045dc0 sp=0xc820045d08
main.(*Daemon).(main.statCallback)-fm(0xc82006ad80, 0x40, 0xc82030c000, 0x0, 0x0, 0x0, 0x0)
        /go/src/github.com/docker/dockercraft/proxy.go:133 +0x66 fp=0xc820045e08 sp=0xc820045dc0
github.com/docker/dockercraft/vendor/github.com/samalba/dockerclient.(*DockerClient).getStats(0xc8200710e0, 0xc82006ad80, 0x40, 0xc8200ef320, 0x0, 0x0, 0x0, 0x0)
        /go/src/github.com/docker/dockercraft/vendor/github.com/samalba/dockerclient/dockerclient.go:582 +0x52a fp=0xc820045f60 sp=0xc820045e08
runtime.goexit()
        /usr/local/go/src/runtime/asm_amd64.s:1998 +0x1 fp=0xc820045f68 sp=0xc820045f60
created by github.com/docker/dockercraft/vendor/github.com/samalba/dockerclient.(*DockerClient).StartMonitorStats
        /go/src/github.com/docker/dockercraft/vendor/github.com/samalba/dockerclient/dockerclient.go:563 +0xae

I've got a fix that I can push to your branch if you'd like. Otherwise this LGTM 👍

aduermael commented 7 years ago

@dave-tucker yes, please push your fix directly to my branch! :) I'll merge it afterwards!

aduermael commented 7 years ago

@dave-tucker I think we should vendor Cuberite because right now it gets the last version when the image is built. And the LUA scripts and other files we have in our project may not be compatible.

dave-tucker commented 7 years ago

@aduermael I'd rather not vendor Cuberite... but maybe there is another solution :)

ENV CUBERITE_BUILD 588
RUN curl -s https://builds.cuberite.org/job/Cuberite%20Linux%20x86%20Master/$CUBERITE_BUILD/artifact/Cuberite.tar.gz | tar -xzf- 

That will pin cuberite at a specific version so we can easily bump it

dave-tucker commented 7 years ago

I've also added my commit so feel free to merge!

aduermael commented 7 years ago

@dave-tucker yes, perfect if we can pin cuberite at a specific version! :) Thanks for your fix! Merging now!