Compare commits

...

11 Commits

Author SHA1 Message Date
Geoff Bourne
f85240898d Added support for Minecraft server EULA and update default to 1.8 2014-09-07 23:18:20 +00:00
Geoff Bourne
84154c3d64 * Installing JDK, not just JRE
* Added usage examples in README
2014-07-17 01:56:03 +00:00
Geoff Bourne
6163e080cd Merge branch 'master' of https://github.com/itzg/dockerfiles 2014-07-16 23:10:14 +00:00
Geoff Bourne
7fb406c2bb * Initial controlled revision of gitblit docker
* Gitblit 1.6.0
2014-07-21 01:01:25 +00:00
Geoff Bourne
8168c62bdd * functional Titan+Rexter with internal ES and Persistit backend 2014-07-20 18:49:33 +00:00
Geoff Bourne
b354ba5981 * updating to java 7u55 2014-07-19 16:31:24 +00:00
Geoff Bourne
972036feb4 * Created devbox container 2014-07-16 23:09:33 +00:00
Geoff Bourne
6dbbcf61b7 Update README.md 2014-07-14 14:16:47 -05:00
Geoff Bourne
159c38c194 Formatting fix 2014-06-29 22:53:16 +00:00
Geoff Bourne
bef6a36476 Renamed /run to /start to avoid collisions 2014-06-29 22:51:41 +00:00
Geoff Bourne
ebb4ee2214 Adding Jekyll container which includes very basic starter content 2014-06-29 22:44:51 +00:00
28 changed files with 372 additions and 26 deletions

29
devbox/Dockerfile Normal file
View 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
View 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".

View File

@@ -1,7 +1,11 @@
This image extends the official elasticsearch image by adding the Marvel Sense plugin. This will get you a system ready to use with the [ElasticSearch Getting Started Guide](http://www.elasticsearch.org/guide/en/elasticsearch/guide/current). This image extends the official elasticsearch image by adding the Marvel Sense plugin. This will get you a system ready to use with the [ElasticSearch Getting Started Guide](http://www.elasticsearch.org/guide/en/elasticsearch/guide/current).
With Marvel Sense installed you can access it using a URL like: Start the container with a command-line such as
http://192.168.1.216:9200/_plugin/marvel/sense/index.html docker run -d --name es -p 9200:9200 -p 9300:9300 itzg/elasticsearch-marvel
and now with Marvel Sense installed you can access it using a URL like:
http://192.168.59.103:9200/_plugin/marvel/sense/index.html
(replacing the IP address shown here with your Docker host's) (replacing the IP address shown here with your Docker host's)

30
gitblit/Dockerfile Normal file
View 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
View 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
View 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

1
jekyll-github-pages/.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
/site

View File

@@ -0,0 +1,22 @@
FROM ubuntu:trusty
MAINTAINER itzg
RUN apt-get update
RUN apt-get -y upgrade
RUN apt-get -y install ruby ruby-dev make patch
RUN gem install bundler
ADD Gemfile /tmp/Gemfile
WORKDIR /tmp
RUN bundle install
ADD template /site-template
VOLUME ["/site"]
EXPOSE 4000
ADD start.sh /start
CMD ["/start"]

View File

@@ -0,0 +1,2 @@
source 'https://rubygems.org'
gem 'github-pages'

View File

@@ -0,0 +1,14 @@
This container is pre-configured according to the
[GitHub Pages use of Jekyll](https://help.github.com/articles/using-jekyll-with-pages).
It serves up the generated content on port 4000 and the site is generated from
the container's `/site` volume. You can either bring your own site content or
let it generate some VERY simple content along with the standard Jekyll directory
layout.
A typical way to run this:
docker run -it -p 4000:4000 -v $(pwd)/site:/site itzg/jekyll-github-pages
where either it will load your content or initialize the content under
`site` in your current working directory.

13
jekyll-github-pages/start.sh Executable file
View File

@@ -0,0 +1,13 @@
#!/bin/sh
if [ `ls /site/index.* 2> /dev/null | wc -l` = 0 ]; then
echo "Preparing /site with default content..."
cp -r /site-template/* /site
fi
if [ ! -e /site/Gemfile ]; then
cp /tmp/Gemfile /site/Gemfile
fi
cd /site
bundle exec jekyll serve

View File

View File

@@ -0,0 +1,3 @@
<footer>
<i>Goodbye</i>
</footer>

View File

@@ -0,0 +1,3 @@
<header>
<h1>{{ page.title }}</h1>
</header>

View File

@@ -0,0 +1,18 @@
<!doctype html>
<html lang="en-US">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>{{ page.title }}</title>
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
<!-- Optional theme -->
<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap-theme.min.css">
<!-- Latest compiled and minified JavaScript -->
<script src="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
</head>

View File

@@ -0,0 +1,12 @@
{% include top.html %}
<body>
{% include header.html %}
{{ content }}
{% include footer.html %}
</body>
</html>

View File

@@ -0,0 +1,6 @@
---
layout: default
title: Powered by Jekyll
overview: true
---
This is where the content goes.

View File

@@ -2,6 +2,8 @@ FROM itzg/ubuntu-openjdk-7
MAINTAINER itzg MAINTAINER itzg
ENV APT_UPDATED 2014-09-07
RUN apt-get update RUN apt-get update
RUN apt-get install -y wget libmozjs-24-bin RUN apt-get install -y wget libmozjs-24-bin
RUN update-alternatives --install /usr/bin/js js /usr/bin/js24 100 RUN update-alternatives --install /usr/bin/js js /usr/bin/js24 100
@@ -11,15 +13,15 @@ RUN chmod +x /usr/bin/jsawk
EXPOSE 25565 EXPOSE 25565
ADD run.sh /run ADD start.sh /start
VOLUME ['/data'] VOLUME ['/data']
ADD server.properties /tmp/server.properties ADD server.properties /tmp/server.properties
WORKDIR /data WORKDIR /data
ENTRYPOINT /run CMD /start
ENV MOTD A Minecraft Server Powered by Docker ENV MOTD A Minecraft Server Powered by Docker
ENV LEVEL world ENV LEVEL world
ENV JVM_OPTS -Xmx512M -Xms512M ENV JVM_OPTS -Xmx1024M -Xms1024M
ENV VERSION 1.7.9 ENV VERSION 1.8

View File

@@ -2,13 +2,22 @@ This docker image provides a Minecraft Server that will automatically download t
To simply use the latest stable version, run 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. 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 To use a different Minecraft version, pass the `VERSION` environment variable, which can have the value
* LATEST * LATEST
@@ -17,13 +26,12 @@ To use a different Minecraft version, pass the `VERSION` environment variable, w
For example, to use the latest snapshot: For example, to use the latest snapshot:
docker run -d -e VERSION=SNAPSHOT -p 25565:25565 minecraft-server docker run -d -e VERSION=SNAPSHOT -p 25565:25565 itzg/minecraft-server
or a specific version: or a specific version:
docker run -d -e VERSION=1.7.9 -p 25565:25565 minecraft-server docker run -d -e VERSION=1.7.9 -p 25565:25565 itzg/minecraft-server
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' -p 25565:25565 minecraft-server docker run -d -e 'MOTD=My Server' -p 25565:25565 itzg/minecraft-server

View File

@@ -23,4 +23,17 @@ fi
sed -i "/motd\s*=/ c motd=$MOTD" /data/server.properties sed -i "/motd\s*=/ c motd=$MOTD" /data/server.properties
sed -i "/level-name\s*=/ c level-name=$LEVEL" /data/server.properties sed -i "/level-name\s*=/ c level-name=$LEVEL" /data/server.properties
if [ "$EULA" != "" -a ! -e /data/eula.txt ]; 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
java $JVM_OPTS -jar minecraft_server.$VERSION.jar java $JVM_OPTS -jar minecraft_server.$VERSION.jar

54
titandb/Dockerfile Normal file
View 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
View File

@@ -0,0 +1,3 @@
#!/bin/sh
/opt/titan/bin/gremlin.sh $*

View 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
View 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
View 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>

View 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
View 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

View File

@@ -2,7 +2,7 @@ FROM ubuntu:trusty
MAINTAINER itzg MAINTAINER itzg
ENV BUILT_ON 20140517 ENV APT_GET_UPDATE 2014-07-19
RUN apt-get update RUN apt-get update
RUN apt-get install -y openjdk-7-jre-headless RUN apt-get install -y openjdk-7-jre-headless