Added support adding 'op' users

* Non-destructive MOTD setting
This commit is contained in:
Geoff Bourne
2014-09-20 14:10:48 +00:00
parent 716ff66b1b
commit 77541a9689
4 changed files with 55 additions and 32 deletions
+1
View File
@@ -0,0 +1 @@
/data/
+44 -29
View File
@@ -1,42 +1,57 @@
This docker image provides a Minecraft Server that will automatically download the latest stable, latest snapshot, or any specific server version. This docker image provides a Minecraft Server that will automatically download the latest stable, latest snapshot, or any specif
To simply use the latest stable version, run To simply use the latest stable version, run
docker run -d -p 25565:25565 itzg/minecraft-server docker run -d -p 25565:25565 itzg/minecraft-server
where the default server port, 25565, will be exposed on your host machine. where the default server port, 25565, will be exposed on your host machine.
## EULA Support
Mojang now requires accepting the [Minecraft EULA](https://account.mojang.com/documents/minecraft_eula). To accept add Mojang now requires accepting the [Minecraft EULA](https://account.mojang.com/documents/minecraft_eula). To accept add
-e EULA=TRUE -e EULA=TRUE
such as such as
docker run -e EULA=TRUE -d -p 25565:25565 itzg/minecraft-server docker run -e EULA=TRUE -d -p 25565:25565 itzg/minecraft-server
## Attaching data directory to host filesystem
In order to persist the Minecraft data, which you *probably want to do for a real server setup*, use the `-v` argument to map a local path to the `/data' path in the container,
In order to persist the Minecraft data, which you *probably want to do for a real server setup*, use the `-v` argument to map a
docker run -d -v /path/on/host:/data -p 25565:25565 itzg/minecraft-server docker run -d -v /path/on/host:/data -p 25565:25565 itzg/minecraft-server
When attached in this way you can stop the server, edit the configuration under your attached `/path/on/host` and start the server again with `docker start CONTAINERID` to pick up the new configuration.
## Versions
To use a different Minecraft version, pass the `VERSION` environment variable, which can have the value To use a different Minecraft version, pass the `VERSION` environment variable, which can have the value
* LATEST * LATEST
* SNAPSHOT * SNAPSHOT
* (or a specific version, such as "1.7.9") * (or a specific version, such as "1.7.9")
For example, to use the latest snapshot: For example, to use the latest snapshot:
docker run -d -e VERSION=SNAPSHOT ... docker run -d -e VERSION=SNAPSHOT ...
or a specific version:
docker run -d -e VERSION=1.7.9 ... or a specific version:
docker run -d -e VERSION=1.7.9 ...
## Server configuration
The message of the day, shown below each server entry in the UI, can be changed with the `MOTD` environment variable, such as The message of the day, shown below each server entry in the UI, can be changed with the `MOTD` environment variable, such as
docker run -d -e 'MOTD=My Server' ... docker run -d -e 'MOTD=My Server' ...
The Java memory limit can be adjusted using the `JVM_OPTS` environment variable, where the default is If you leave it off, the last used or default message will be used.
To add more "op" (aka adminstrator) users to your Minecraft server, pass the Minecraft usernames separated by commas via the `OPS` environment variable, such as
docker run -d -e OPS=user1,user2 ...
The Java memory limit can be adjusted using the `JVM_OPTS` environment variable, where the default is
the setting shown in the example (max and min at 1024 MB): the setting shown in the example (max and min at 1024 MB):
docker run -e 'JVM_OPTS=-Xmx1024M -Xms1024M' ... docker run -e 'JVM_OPTS=-Xmx1024M -Xms1024M' ...
+1 -1
View File
@@ -29,5 +29,5 @@ spawn-monsters=true
generate-structures=true generate-structures=true
view-distance=10 view-distance=10
spawn-protection=16 spawn-protection=16
motd=A Minecraft Server motd=A Minecraft Server powered by Docker
+9 -2
View File
@@ -21,8 +21,15 @@ if [ ! -e server.properties ]; then
cp /tmp/server.properties . cp /tmp/server.properties .
fi fi
sed -i "/motd\s*=/ c motd=$MOTD" /data/server.properties if [ -n "$MOTD" ]; then
sed -i "/level-name\s*=/ c level-name=$LEVEL" /data/server.properties sed -i "/motd\s*=/ c motd=$MOTD" /data/server.properties
fi
if [ -n "$LEVEL" ]; then
sed -i "/level-name\s*=/ c level-name=$LEVEL" /data/server.properties
fi
if [ -n "$OPS" ]; then
echo $OPS | awk -v RS=, '{print}' >> ops.txt
fi
if [ ! -e /data/eula.txt ]; then if [ ! -e /data/eula.txt ]; then
if [ "$EULA" != "" ]; then if [ "$EULA" != "" ]; then