DockerでMinecraftServerを建てる
从1.7版本开始,Minecraft严格执行许可证制度。
由于购买者之间相互分发Minecraft(Mojang的产品)是不允许的。
我尝试使用ONBUILD来分发镜像。
k2wanko/minecraft仓库 | Docker Hub注册表
k2wanko/docker-minecraft 仓库 | Github
制作Dockerfile
FROM k2wanko/minecraft:1.8
创建一个一行的Dockerfile。
最好是新建一个目录并将其放在其中。
由于添加了当前目录的所有内容,所以会导致这个问题。
建造
在Dockerfile所在的位置紧挨着输入以下命令。
使用以下指令在本地构建 Docker 镜像:$ docker build -t minecraft .
Sending build context to Docker daemon 4.096 kB
Sending build context to Docker daemon
Step 0 : FROM k2wanko/minecraft:1.8
Pulling repository k2wanko/minecraft
...
# Executing 2 build triggers
Step onbuild-0 : RUN download 1.8
---> Running in 84728c402590
######################################################################## 100.0%
---> cc670f2d4714
Step onbuild-1 : COPY . /data
---> 53f7a68bb12b
---> 53f7a68bb12b
Removing intermediate container 84728c402590
Removing intermediate container 072ebb2ced5a
Successfully built 53f7a68bb12b
跑
请用以下命令进行执行。
$ docker run -i -p 25565:25565 -e EULA=true minecraft
现在的趋势用一句话来概括的话
mkdir mcserver && cd mcserver && echo "FROM k2wanko/minecraft:1.8" > Dockerfile && docker build -t minecraft . && docker run --name some-minecraft -i -p 25565:25565 -e "EULA=true" minecraft
总结
使用ONBUILD可以在FROM中调用包含ONBUILD的Dockerfile后,在处理完Dockerfile之后执行。
今回MinecraftServerのDownload処理をこのOBUILDに書き込むことで配布用のImageにライセンスでダメェって言われている物を含めることをせずに済んだということでした。
顺便提一下,我还安装了1.7.10的Forge服务器,所以Mod服务器可以很快启动。