mirror of
https://github.com/itzg/docker-minecraft-server.git
synced 2026-02-18 15:36:22 +00:00
Compare commits
8 Commits
7u55
...
minecraft-
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7d8429ef0a | ||
|
|
df155ee51c | ||
|
|
f85240898d | ||
|
|
84154c3d64 | ||
|
|
6163e080cd | ||
|
|
7fb406c2bb | ||
|
|
8168c62bdd | ||
|
|
972036feb4 |
29
devbox/Dockerfile
Normal file
29
devbox/Dockerfile
Normal file
@@ -0,0 +1,29 @@
|
||||
FROM itzg/ubuntu-openjdk-7
|
||||
|
||||
RUN apt-get update
|
||||
RUN apt-get install -yq git curl wget unzip openjdk-7-jdk
|
||||
|
||||
ENV MAVEN_VER 3.2.2
|
||||
ENV NODEJS_VER 0.10.29
|
||||
|
||||
WORKDIR /opt
|
||||
|
||||
RUN wget -O /tmp/maven.tgz http://apache.mirrors.pair.com/maven/maven-3/$MAVEN_VER/binaries/apache-maven-$MAVEN_VER-bin.tar.gz
|
||||
RUN tar xvf /tmp/maven.tgz && rm /tmp/maven.tgz
|
||||
ENV M2_HOME /opt/apache-maven-$MAVEN_VER
|
||||
ENV PATH $PATH:$M2_HOME/bin
|
||||
|
||||
RUN curl -s https://raw.githubusercontent.com/isaacs/nave/master/nave.sh > /usr/local/bin/nave
|
||||
RUN chmod +x /usr/local/bin/nave
|
||||
RUN nave usemain latest
|
||||
|
||||
WORKDIR /root
|
||||
env HOME /root
|
||||
|
||||
VOLUME ["/shared"]
|
||||
|
||||
RUN curl -s get.gvmtool.net | bash
|
||||
|
||||
RUN apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
||||
|
||||
CMD bash
|
||||
25
devbox/README.md
Normal file
25
devbox/README.md
Normal file
@@ -0,0 +1,25 @@
|
||||
Provides a development/build environment for Java, Groovy, and NodeJS.
|
||||
|
||||
* Provides 'gvm' for Groovy (and more) installation management
|
||||
* Provides 'nave' for NodeJS installation management
|
||||
* Pre-installs the latest NodeJS via nave
|
||||
|
||||
## Using the persistent/shared workarea
|
||||
|
||||
Since devbox containers are intended to be disposable, the image is configured
|
||||
with a "volume" at `/shared`.
|
||||
|
||||
There are a couple of ways you can leverage that volume. Either attach it to
|
||||
a host-local directory:
|
||||
|
||||
docker run -it -v $(pwd)/workarea:/shared --rm itzg/devbox
|
||||
|
||||
or run a "base" container and mounts the `/shared` from that onto any
|
||||
subsequent containers:
|
||||
|
||||
docker run --name devbox-base itzg/devbox touch /shared/READY
|
||||
...later...
|
||||
docker run -it --volumes-from devbox-base --rm itzg/devbox
|
||||
|
||||
**NOTE** I am using the `--rm` option so the devbox containers will be truly
|
||||
"burn after use".
|
||||
30
gitblit/Dockerfile
Normal file
30
gitblit/Dockerfile
Normal file
@@ -0,0 +1,30 @@
|
||||
FROM itzg/ubuntu-openjdk-7
|
||||
|
||||
MAINTAINER itzg
|
||||
|
||||
ENV APT_GET_UPDATE 2014-07-19
|
||||
|
||||
RUN apt-get update
|
||||
RUN apt-get -y install wget tar
|
||||
|
||||
ENV GITBLIT_VERSION 1.6.0
|
||||
|
||||
RUN wget -O /tmp/gitblit.tgz http://dl.bintray.com/gitblit/releases/gitblit-$GITBLIT_VERSION.tar.gz
|
||||
|
||||
RUN mkdir /opt/gitblit
|
||||
RUN tar -C /opt/gitblit -xvf /tmp/gitblit.tgz
|
||||
RUN rm /tmp/gitblit.tgz
|
||||
|
||||
VOLUME ["/data"]
|
||||
|
||||
ADD start.sh /start
|
||||
|
||||
WORKDIR /opt/gitblit
|
||||
ENV GITBLIT_PATH /opt/gitblit
|
||||
ENV GITBLIT_HTTPS_PORT 443
|
||||
ENV GITBLIT_HTTP_PORT 80
|
||||
ENV GITBLIT_BASE_FOLDER /data
|
||||
|
||||
EXPOSE 80 443
|
||||
|
||||
CMD ["/start"]
|
||||
5
gitblit/README.md
Normal file
5
gitblit/README.md
Normal file
@@ -0,0 +1,5 @@
|
||||
Provides a ready-to-use instance of [GitBlit](http://gitblit.com/). In order to allow for
|
||||
future upgrades run the container with a volume mount of `/data`, such as:
|
||||
|
||||
docker run -d -p 80:80 p 443:443 -v /tmp/gitblit-data:/data --name gitblit itzg/gitblit
|
||||
|
||||
10
gitblit/start.sh
Executable file
10
gitblit/start.sh
Executable file
@@ -0,0 +1,10 @@
|
||||
#!/bin/sh
|
||||
|
||||
contents=`ls $GITBLIT_BASE_FOLDER|wc -l`
|
||||
|
||||
if [ $contents = "0" ]; then
|
||||
cp -r $GITBLIT_PATH/data/* $GITBLIT_BASE_FOLDER
|
||||
fi
|
||||
|
||||
$JAVA_HOME/bin/java -jar $GITBLIT_PATH/gitblit.jar --httpsPort $GITBLIT_HTTPS_PORT --httpPort $GITBLIT_HTTP_PORT --baseFolder $GITBLIT_BASE_FOLDER
|
||||
|
||||
@@ -2,7 +2,6 @@ FROM itzg/ubuntu-openjdk-7
|
||||
|
||||
MAINTAINER itzg
|
||||
|
||||
RUN apt-get update
|
||||
RUN apt-get install -y wget libmozjs-24-bin
|
||||
RUN update-alternatives --install /usr/bin/js js /usr/bin/js24 100
|
||||
|
||||
@@ -21,5 +20,5 @@ CMD /start
|
||||
|
||||
ENV MOTD A Minecraft Server Powered by Docker
|
||||
ENV LEVEL world
|
||||
ENV JVM_OPTS -Xmx512M -Xms512M
|
||||
ENV VERSION 1.7.9
|
||||
ENV JVM_OPTS -Xmx1024M -Xms1024M
|
||||
ENV VERSION 1.8
|
||||
|
||||
@@ -2,28 +2,41 @@ This docker image provides a Minecraft Server that will automatically download t
|
||||
|
||||
To simply use the latest stable version, run
|
||||
|
||||
docker run -d -p 25565:25565 minecraft-server
|
||||
|
||||
docker run -d -p 25565:25565 itzg/minecraft-server
|
||||
|
||||
where the default server port, 25565, will be exposed on your host machine.
|
||||
|
||||
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, such as
|
||||
Mojang now requires accepting the [Minecraft EULA](https://account.mojang.com/documents/minecraft_eula). To accept add
|
||||
|
||||
docker run -d -v /path/on/host:/data -p 25565:25565 minecraft-server
|
||||
-e EULA=TRUE
|
||||
|
||||
such as
|
||||
|
||||
docker run -e EULA=TRUE -d -p 25565:25565 itzg/minecraft-server
|
||||
|
||||
|
||||
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,
|
||||
|
||||
docker run -d -v /path/on/host:/data -p 25565:25565 itzg/minecraft-server
|
||||
|
||||
To use a different Minecraft version, pass the `VERSION` environment variable, which can have the value
|
||||
* LATEST
|
||||
* SNAPSHOT
|
||||
* (or a specific version, such as "1.7.9")
|
||||
|
||||
For example, to use the latest snapshot:
|
||||
|
||||
docker run -d -e VERSION=SNAPSHOT -p 25565:25565 minecraft-server
|
||||
|
||||
or a specific version:
|
||||
|
||||
docker run -d -e VERSION=1.7.9 -p 25565:25565 minecraft-server
|
||||
|
||||
* LATEST
|
||||
* SNAPSHOT
|
||||
* (or a specific version, such as "1.7.9")
|
||||
|
||||
For example, to use the latest snapshot:
|
||||
|
||||
docker run -d -e VERSION=SNAPSHOT ...
|
||||
|
||||
or a specific version:
|
||||
|
||||
docker run -d -e VERSION=1.7.9 ...
|
||||
|
||||
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' -p 25565:25565 minecraft-server
|
||||
|
||||
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):
|
||||
|
||||
docker run -e 'JVM_OPTS=-Xmx1024M -Xms1024M' ...
|
||||
|
||||
@@ -13,7 +13,8 @@ esac
|
||||
cd /data
|
||||
|
||||
if [ ! -e minecraft_server.$VERSION.jar ]; then
|
||||
wget https://s3.amazonaws.com/Minecraft.Download/versions/$VERSION/minecraft_server.$VERSION.jar
|
||||
echo "Downloading minecraft_server.$VERSION.jar ..."
|
||||
wget -q https://s3.amazonaws.com/Minecraft.Download/versions/$VERSION/minecraft_server.$VERSION.jar
|
||||
fi
|
||||
|
||||
if [ ! -e server.properties ]; then
|
||||
@@ -23,4 +24,19 @@ fi
|
||||
sed -i "/motd\s*=/ c motd=$MOTD" /data/server.properties
|
||||
sed -i "/level-name\s*=/ c level-name=$LEVEL" /data/server.properties
|
||||
|
||||
if [ ! -e /data/eula.txt ]; then
|
||||
if [ "$EULA" != "" ]; then
|
||||
echo "# Generated via Docker on $(date)" > eula.txt
|
||||
echo "eula=$EULA" >> eula.txt
|
||||
else
|
||||
echo ""
|
||||
echo "Please accept the Minecraft EULA at"
|
||||
echo " https://account.mojang.com/documents/minecraft_eula"
|
||||
echo "by adding the following immediately after 'docker run':"
|
||||
echo " -e EULA=TRUE"
|
||||
echo ""
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
java $JVM_OPTS -jar minecraft_server.$VERSION.jar
|
||||
|
||||
54
titandb/Dockerfile
Normal file
54
titandb/Dockerfile
Normal file
@@ -0,0 +1,54 @@
|
||||
FROM itzg/ubuntu-openjdk-7
|
||||
|
||||
MAINTAINER itzg
|
||||
|
||||
ENV APT_GET_UPDATE 2014-07-19
|
||||
|
||||
RUN apt-get update
|
||||
RUN apt-get install -y wget unzip
|
||||
|
||||
ENV TITAN_VER 0.4.4
|
||||
ENV TITAN_STORAGE all
|
||||
ENV REXSTER_VER 2.4.0
|
||||
|
||||
RUN wget -O /tmp/titan.zip http://s3.thinkaurelius.com/downloads/titan/titan-$TITAN_STORAGE-$TITAN_VER.zip
|
||||
RUN wget -O /tmp/rexster.zip http://tinkerpop.com/downloads/rexster/rexster-server-$REXSTER_VER.zip
|
||||
|
||||
WORKDIR /opt
|
||||
|
||||
RUN unzip /tmp/titan.zip
|
||||
RUN rm /tmp/titan.zip
|
||||
|
||||
RUN unzip /tmp/rexster.zip
|
||||
RUN rm /tmp/rexster.zip
|
||||
|
||||
RUN ln -s titan-$TITAN_STORAGE-$TITAN_VER titan
|
||||
RUN ln -s rexster-server-$REXSTER_VER rexster-server
|
||||
|
||||
RUN mkdir /opt/rexster-server/ext/titan
|
||||
RUN ln -s /opt/titan-$TITAN_STORAGE-$TITAN_VER/lib/* /opt/rexster-server/ext/titan
|
||||
RUN wget -O /opt/rexster-server/ext/titan/titan-rexter-$TITAN_VER.jar \
|
||||
http://central.maven.org/maven2/com/thinkaurelius/titan/titan-rexster/$TITAN_VER/titan-rexster-$TITAN_VER.jar
|
||||
|
||||
# Clean up distro area
|
||||
RUN rm /opt/rexster-server/ext/titan/log4j* /opt/rexster-server/ext/titan/slf4j*
|
||||
RUN rm /opt/rexster-server/lib/lucene-core*
|
||||
|
||||
ADD gremlin /usr/local/bin/gremlin
|
||||
ADD rexster /usr/local/bin/rexster
|
||||
|
||||
WORKDIR titan
|
||||
|
||||
ADD titan.properties /opt/titan/conf/titan.properties
|
||||
ADD init-graph-storage.groovy /tmp/init-graph-storage.groovy
|
||||
|
||||
VOLUME ["/data", "/config", "/scripts"]
|
||||
RUN ln -s /data /opt/titan/db
|
||||
|
||||
RUN gremlin -e /tmp/init-graph-storage.groovy && rm /tmp/init-graph-storage.groovy
|
||||
|
||||
EXPOSE 8182 8184
|
||||
|
||||
ADD rexster.xml /config/rexster.xml
|
||||
|
||||
CMD ["/usr/local/bin/rexster", "-s", "-c", "/config/rexster.xml"]
|
||||
3
titandb/gremlin
Executable file
3
titandb/gremlin
Executable file
@@ -0,0 +1,3 @@
|
||||
#!/bin/sh
|
||||
|
||||
/opt/titan/bin/gremlin.sh $*
|
||||
12
titandb/init-graph-storage.groovy
Normal file
12
titandb/init-graph-storage.groovy
Normal file
@@ -0,0 +1,12 @@
|
||||
import com.thinkaurelius.titan.core.TitanFactory
|
||||
import com.thinkaurelius.titan.core.TitanGraph
|
||||
import com.thinkaurelius.titan.graphdb.configuration.GraphDatabaseConfiguration
|
||||
import org.apache.commons.configuration.BaseConfiguration
|
||||
import org.apache.commons.configuration.Configuration
|
||||
|
||||
// Setup a blank one
|
||||
|
||||
TitanGraph g = TitanFactory.open('conf/titan.properties')
|
||||
g.shutdown()
|
||||
|
||||
|
||||
14
titandb/rexster
Executable file
14
titandb/rexster
Executable file
@@ -0,0 +1,14 @@
|
||||
#!/bin/sh
|
||||
|
||||
if [ -n "$PUBLISH_ADDR" ]; then
|
||||
echo "Enabling Doghouse access at http://$PUBLISH_ADDR:8182/doghouse"
|
||||
sed -i "s#<base-uri>.*</base-uri>#<base-uri>http://$PUBLISH_ADDR</base-uri>#" /config/rexster.xml
|
||||
fi
|
||||
|
||||
if [ -n "$SCRIPT" ]; then
|
||||
echo "Running Gremlin script $SCRIPT from /scripts..."
|
||||
gremlin -e /scripts/$SCRIPT
|
||||
fi
|
||||
|
||||
echo "Starting Rexster..."
|
||||
/opt/rexster-server/bin/rexster.sh $*
|
||||
28
titandb/rexster.xml
Normal file
28
titandb/rexster.xml
Normal file
@@ -0,0 +1,28 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<rexster>
|
||||
<http>
|
||||
<base-uri>http://localhost</base-uri>
|
||||
</http>
|
||||
<graphs>
|
||||
<graph>
|
||||
<graph-name>titan</graph-name>
|
||||
<graph-type>com.thinkaurelius.titan.tinkerpop.rexster.TitanGraphConfiguration</graph-type>
|
||||
<graph-location>/data/persistit</graph-location>
|
||||
<graph-read-only>false</graph-read-only>
|
||||
<properties>
|
||||
<storage.backend>persistit</storage.backend>
|
||||
<storage.directory>/data/persistit</storage.directory>
|
||||
<storage.buffercount>5000</storage.buffercount>
|
||||
<storage.index.search.backend>elasticsearch</storage.index.search.backend>
|
||||
<storage.index.search.local-mode>true</storage.index.search.local-mode>
|
||||
<storage.index.search.client-only>false</storage.index.search.client-only>
|
||||
<storage.index.search.directory>/data/es</storage.index.search.directory>
|
||||
</properties>
|
||||
<extensions>
|
||||
<allows>
|
||||
<allow>tp:gremlin</allow>
|
||||
</allows>
|
||||
</extensions>
|
||||
</graph>
|
||||
</graphs>
|
||||
</rexster>
|
||||
7
titandb/scripts/GraphOfTheGods.groovy
Normal file
7
titandb/scripts/GraphOfTheGods.groovy
Normal file
@@ -0,0 +1,7 @@
|
||||
import com.thinkaurelius.titan.core.TitanFactory
|
||||
import com.thinkaurelius.titan.example.GraphOfTheGodsFactory
|
||||
|
||||
def g = TitanFactory.open('conf/titan.properties')
|
||||
GraphOfTheGodsFactory.load(g)
|
||||
|
||||
g.shutdown()
|
||||
8
titandb/titan.properties
Normal file
8
titandb/titan.properties
Normal file
@@ -0,0 +1,8 @@
|
||||
storage.backend=persistit
|
||||
storage.directory=/data/persistit
|
||||
storage.buffercount=5000
|
||||
|
||||
storage.index.search.backend=elasticsearch
|
||||
storage.index.search.local-mode=true
|
||||
storage.index.search.client-only=false
|
||||
storage.index.search.directory=/data/es
|
||||
@@ -2,7 +2,7 @@ FROM ubuntu:trusty
|
||||
|
||||
MAINTAINER itzg
|
||||
|
||||
ENV APT_GET_UPDATE 2014-07-19
|
||||
ENV APT_GET_UPDATE 2014-09-07
|
||||
|
||||
RUN apt-get update
|
||||
RUN apt-get install -y openjdk-7-jre-headless
|
||||
|
||||
Reference in New Issue
Block a user