Compare commits

..

24 Commits

Author SHA1 Message Date
Geoff Bourne
8e148095f0 Adding link for github README 2019-08-24 11:12:41 -05:00
DocQuantum
3c55a05b1c Added ability to add resource-pack from environment vars (#379) 2019-08-24 10:38:59 -05:00
Geoff Bourne
d293a65f5e Add MEMORY example
Fixes #377
2019-08-17 14:40:51 -05:00
Geoff Bourne
e6bfa01db5 Revert "Switch to OpenJ9 base image (#360)"
This reverts commit 93197ffb
2019-08-10 17:47:46 -05:00
Geoff Bourne
4e122a67d3 Added description of CONSOLE=FALSE option (#80) 2019-08-10 17:47:26 -05:00
Geoff Bourne
b11863d3b2 Delegate ToF buildtools inclusion to extending images (#331) 2019-08-10 17:05:23 -05:00
Geoff Bourne
93197ffb77 Switch to OpenJ9 base image (#360) 2019-08-10 17:04:38 -05:00
Tyler Page
f02baa8761 fix duplicate projects subpath (#371)
`CURSE_URL_BASE` already had `/projects` appended to it, missed it by mistake
2019-08-03 07:47:41 -05:00
Michael Vorburger ⛑️
19e39b84ec add readinessProbe & livenessProbe to k8s-examples/vanilla-deployment.yml (#370) 2019-08-02 13:21:47 -05:00
Tyler Page
53800e460f fix settings.cfg and preserve semicolons if present (#369) 2019-08-02 11:29:22 -05:00
Tyler Page
e061cc7163 Update start-finalSetup02Modpack (#368)
Fixed curseforge redirect so it actually downloads the JAR file, not an HTML page
2019-08-02 11:28:35 -05:00
Geoff Bourne
e61942f33e Revert "Update start-minecraftFinalSetup (#365)"
This reverts commit f8b97bf9
2019-08-01 18:03:11 -05:00
Tyler Page
f8b97bf909 Update start-minecraftFinalSetup (#365) 2019-07-31 18:58:13 -05:00
Geoff Bourne
ed272da302 Add script to update multiarch manifest 2019-07-26 12:25:47 -05:00
Geoff Bourne
e8b7975295 Configure no-reponse github app 2019-07-26 10:47:01 -05:00
Geoff Bourne
cae1a20973 Purge /data/temp before each Spigot build
Fixes #354
2019-07-22 21:33:54 -05:00
Alan
165150a852 Fix -version => -mcversion (#352)
Fabric's installer uses `-mcversion` to specify the Minecraft version (https://fabricmc.net/wiki/install). The way the command is written right now it will always use the latest version of MC and ignore the `VERSION` specification.
2019-07-21 09:05:54 -05:00
Geoff Bourne
ad2674bf8e misc: putting gitter reference back to "dockerfiles" 2019-07-20 16:14:27 -05:00
Geoff Bourne
b72266f7bf Add a README in old location 2019-07-20 16:09:03 -05:00
Geoff Bourne
79c864ae19 Fixed repo references 2019-07-20 16:04:23 -05:00
Geoff Bourne
451eec4db5 Update repo references 2019-07-20 16:02:46 -05:00
Geoff Bourne
539f7ada70 Exclude examples and IDE metadata directories from docker build 2019-07-20 15:58:41 -05:00
Geoff Bourne
c60156d245 Moved Minecraft server files to top-level 2019-07-20 15:51:40 -05:00
Geoff Bourne
281bd3660f Remove archived image definitions 2019-07-20 14:34:08 -05:00
73 changed files with 1101 additions and 1735 deletions

View File

@@ -2,13 +2,13 @@ version: 2
jobs:
minecraft_server:
docker:
- image: circleci/buildpack-deps:18.04
- image: circleci/buildpack-deps:19.10
steps:
- checkout
- setup_remote_docker
- run:
name: Build image
command: docker build -t mc:$CIRCLE_BUILD_NUM minecraft-server
command: docker build -t mc:$CIRCLE_BUILD_NUM .
workflows:
version: 2

4
.dockerignore Normal file
View File

@@ -0,0 +1,4 @@
data
examples
k8s-examples
.idea

View File

@@ -1,5 +1,2 @@
root = true
[*]
end_of_line = lf
indent_style = space
[start-*]
indent_size = 2

6
.github/no-response.yml vendored Normal file
View File

@@ -0,0 +1,6 @@
daysUntilClose: 14
responseRequiredLabel: "status/waiting on feedback"
closeComment: >
This issue has been automatically closed because there has been no response
after requesting feedback. Please feel free to re-open this issue if the
scenario still exists and provide a comment with more information.

5
.gitignore vendored
View File

@@ -1,2 +1,3 @@
*.iml
.idea
/data/
/.idea/
*.iml

View File

@@ -34,7 +34,6 @@ RUN echo 'hosts: files dns' > /etc/nsswitch.conf
ARG RESTIFY_VER=1.1.6
ARG RCON_CLI_VER=1.4.6
ARG MC_SERVER_RUNNER_VER=1.3.2
ARG TOF_BUILDTOOLS_VER=1.2.0
ARG ARCH=amd64
ADD https://github.com/itzg/restify/releases/download/${RESTIFY_VER}/restify_${RESTIFY_VER}_linux_${ARCH}.tar.gz /tmp/restify.tgz
@@ -49,22 +48,6 @@ ADD https://github.com/itzg/mc-server-runner/releases/download/${MC_SERVER_RUNNE
RUN tar -x -C /usr/local/bin -f /tmp/mc-server-runner.tgz mc-server-runner && \
rm /tmp/mc-server-runner.tgz
ADD https://git.faldoria.de/tof/server/build-tools/-/jobs/artifacts/buildtools-${TOF_BUILDTOOLS_VER}/raw/target/ToF-BuildTools.jar?job=release-artifact /tmp/tof-buildtools/BuildTools.jar
ONBUILD ARG BUILDTOOLS_OUTPUT=/plugins
ONBUILD COPY *Dockerfile* *plugins.yml /tmp/tof-buildtools/
ONBUILD RUN \
[ -d /tmp/tof-buildtools ] && \
[ $(find /tmp/tof-buildtools -type f -name plugins.yml | wc -l) -gt 0 ] && \
java -jar /tmp/tof-buildtools/BuildTools.jar \
--config "/tmp/tof-buildtools/plugins.yml" \
--configs "plugins.yml" \
--dir "/tmp/tof-buildtools/" \
--output ${BUILDTOOLS_OUTPUT} && \
chown -R minecraft:minecraft ${BUILDTOOLS_OUTPUT} && \
rm -fR /tmp/tof-buildtools/ || \
true
COPY mcadmin.jq /usr/share
RUN chmod +x /usr/local/bin/*
@@ -78,6 +61,7 @@ ENV UID=1000 GID=1000 \
JVM_XX_OPTS="-XX:+UseG1GC" MEMORY="1G" \
TYPE=VANILLA VERSION=LATEST FORGEVERSION=RECOMMENDED SPONGEBRANCH=STABLE SPONGEVERSION= FABRICVERSION=LATEST LEVEL=world \
PVP=true DIFFICULTY=easy ENABLE_RCON=true RCON_PORT=25575 RCON_PASSWORD=minecraft \
RESOURCE_PACK= RESOURCE_PACK_SHA1= \
LEVEL_TYPE=DEFAULT GENERATOR_SETTINGS= WORLD= MODPACK= MODS= SERVER_PORT=25565 ONLINE_MODE=TRUE CONSOLE=true SERVER_NAME="Dedicated Server" \
REPLACE_ENV_VARIABLES="FALSE" ENV_VARIABLE_PREFIX="CFG_"

1047
README.md

File diff suppressed because it is too large Load Diff

10
build
View File

@@ -1,10 +0,0 @@
#!/bin/bash
pkgs=ubuntu-openjdk-7
pkgs="$pkgs minecraft-server"
pkgs="$pkgs titan-gremlin"
for p in $pkgs
do
docker build -t itzg/$p $p
done

View File

@@ -1,11 +0,0 @@
machine:
services:
- docker
test:
override:
- ./build
notify:
webhooks:
- url: https://webhooks.gitter.im/e/4726bb683d8aed018486

18
development/update-multiarch.sh Executable file
View File

@@ -0,0 +1,18 @@
#!/bin/bash
manifest="itzg/minecraft-server:multiarch"
for t in latest rpi3 aarch64; do
docker pull itzg/minecraft-server:$t
done
docker manifest create --amend ${manifest} \
itzg/minecraft-server:aarch64 \
itzg/minecraft-server:latest \
itzg/minecraft-server:rpi3
docker manifest annotate --os linux --arch amd64 ${manifest} itzg/minecraft-server:latest
docker manifest annotate --os linux --arch arm64 ${manifest} itzg/minecraft-server:aarch64
docker manifest annotate --os linux --arch arm --variant v7 ${manifest} itzg/minecraft-server:rpi3
docker manifest push ${manifest}

View File

@@ -1,26 +0,0 @@
FROM java:8
LABEL maintainer "itzg"
ENV GITBLIT_VERSION 1.7.1
RUN wget -qO /tmp/gitblit.tgz http://dl.bintray.com/gitblit/releases/gitblit-$GITBLIT_VERSION.tar.gz
RUN tar -C /opt -xvf /tmp/gitblit.tgz && \
rm /tmp/gitblit.tgz
VOLUME ["/data"]
ADD start.sh /start
ENV GITBLIT_PATH=/opt/gitblit-${GITBLIT_VERSION} \
GITBLIT_HTTPS_PORT=443 \
GITBLIT_HTTP_PORT=80 \
GITBLIT_BASE_FOLDER=/data \
GITBLIT_ADMIN_USER=admin \
GITBLIT_INITIAL_REPO=
WORKDIR $GITBLIT_PATH
EXPOSE 80 443
ENTRYPOINT ["/start"]

View File

@@ -1,46 +0,0 @@
Provides a ready-to-use instance of [GitBlit](http://gitblit.com/).
## Basic usage
Start the GitBlit container using
docker run -d -p 80:80 -p 443:443 --name gitblit itzg/gitblit
Access its web interface at the mapped HTTP (80) or HTTPS (443) port of the
Docker host. Login with the default credentials __admin__ / __admin__ .
## Data volume
In order to allow for future upgrades, run the container with a volume mount of `/data`, such as:
-v /tmp/gitblit-data:/data
## Initial repository creation
As a convenience for cluster configuration management with git
(such as with [Spring Cloud Config](https://cloud.spring.io/spring-cloud-config/)),
you may specify the name of an initial repository to be owned by the 'admin' user.
This can be enabled by passing the name of that repository via the environment
variable `GITBLIT_INITIAL_REPO`, such as
-e GITBLIT_INITIAL_REPO=default
## Create repositories with content
In addition to the approach above, you can push repostories with existing
content by attaching them to sub-directories of `/repos`, such as
docker run -v $HOME/git/example:/repos/example ...
## Custom configuration
You can add or override any of the `*.properties` files for configuring GitBlit,
typically `gitblit.properties`, by placing those files in a volume attached at
`/config`, such as
-v $(pwd)/extra-config:/config
The property files in that configuration directory will be renamed with the
suffix `.applied` to avoid overwriting manually modified configuration on
the next container startup.

View File

@@ -1,103 +0,0 @@
#!/bin/bash
apply_base_data() {
contents=`ls $GITBLIT_BASE_FOLDER|wc -l`
if [ $contents = "0" ]; then
cp -r $GITBLIT_PATH/data/* $GITBLIT_BASE_FOLDER
fi
}
apply_config() {
cp -rf /config/* $GITBLIT_BASE_FOLDER
}
create_repo() {
local repo_dir=$GITBLIT_BASE_FOLDER/git/$1.git
mkdir -p $repo_dir
cd $repo_dir
git init --bare
echo "
[gitblit]
description =
originRepository =
owner = $GITBLIT_ADMIN_USER
acceptNewPatchsets = true
acceptNewTickets = true
mergeTo = master
useIncrementalPushTags = false
allowForks = true
accessRestriction = PUSH
authorizationControl = AUTHENTICATED
verifyCommitter = false
showRemoteBranches = false
isFrozen = false
skipSizeCalculation = false
skipSummaryMetrics = false
federationStrategy = FEDERATE_THIS
isFederated = false
gcThreshold =
gcPeriod = 0
" >> config
git config --replace-all core.logallrefupdates false
echo "
CREATING repository '$1' with:
* read/clone access for all
* push access for authenticated users"
RET="file://$repo_dir"
}
apply_repos() {
for rdir in /repos/*; do
if [ -e $rdir/.git ]; then
r=$(basename $rdir)
create_repo $r
local url=$RET
cd $rdir
echo "* pushed existing content"
git push --all $url
fi
done
}
create_initial_repo() {
if [ -d $GITBLIT_INITIAL_REPO ]; then
return
fi
create_repo $GITBLIT_INITIAL_REPO
}
shopt -s nullglob
if [ ! -f /var/local/gitblit_firststart ]; then
FIRSTSTART=1
else
FIRSTSTART=0
fi
if [ $FIRSTSTART = 1 ]; then
apply_base_data
echo "
Applying configuration from /config
"
apply_config
touch /var/local/gitblit_firststart
fi
if [[ -n $GITBLIT_INITIAL_REPO ]]; then
create_initial_repo
fi
apply_repos
cd $GITBLIT_PATH
$JAVA_HOME/bin/java -jar $GITBLIT_PATH/gitblit.jar \
--httpsPort $GITBLIT_HTTPS_PORT --httpPort $GITBLIT_HTTP_PORT \
--baseFolder $GITBLIT_BASE_FOLDER

View File

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

View File

@@ -1,23 +0,0 @@
FROM ubuntu:trusty
LABEL maintainer "itzg"
ENV APT_GET_UPDATE 2014-09-18
RUN apt-get update
RUN apt-get -y upgrade
RUN apt-get -y install ruby ruby-dev make patch nodejs
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

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

View File

@@ -1,14 +0,0 @@
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.

View File

@@ -1,13 +0,0 @@
#!/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

@@ -1 +0,0 @@
highlighter: pygments

View File

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

View File

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

View File

@@ -1,18 +0,0 @@
<!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

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

View File

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

View File

@@ -1,17 +0,0 @@
FROM java:openjdk-8u102-jdk
LABEL maintainer "itzg"
RUN apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get install -y \
graphviz \
&& apt-get clean
ENV JENKINS_HOME=/data
VOLUME ["/data", "/root", "/opt/jenkins"]
EXPOSE 8080 38252
COPY download-and-start.sh /opt/download-and-start
CMD ["/opt/download-and-start"]

View File

@@ -1,51 +0,0 @@
A self-upgrading [Jenkins CI](http://jenkins-ci.org/) server
# Basic Usage
To start Jenkins with the latest version:
ID=$(docker run -d -p 8080:8080 itzg/jenkins)
At a later time, you can upgrade by restarting the container:
docker stop $ID
docker start $ID
# Attaching host directory to Jenkins home directory
The Jenkins home directory is attachable at `/data`, so attaching to a host volume
would be:
ID=$(docker run -d -p 8080:8080 -v /SOME_HOST_DIR:/data itzg/jenkins
# Enabling Jenkins slave agents
By default, Jenkins will pick a random port to allow slave nodes launched
by JNLP. Since Docker networking is basically a firewall, a random port
won't work for us. Instead the fixed port **38252** was chosen (arbitrarily)
to be exposed by the container.
Launch your Jenkins container using
ID=$(docker run -d -p 8080:8080 -p 38252:38252 itzg/jenkins)
and configure the port in the Global Security settings:
![](http://i.imgur.com/PhQiEHy.png)
# Image Parameters
## Volumes
* `/data` - a majority of the Jenkins content is maintained here, such as workspaces
* `/root` - some tools, such as Maven, utilize the home directory for default repository storage
* `/opt/jenkins` - the installed distribution is expanded here
## Ports
* `8080` - for the web UI
* `38252` - for slave incoming JMX access
## Environment Variables
* `JENKINS_OPTS` - passed to the initial Java invocation of Jenkins

View File

@@ -1,29 +0,0 @@
#!/bin/bash
mirrorUrl=http://mirrors.jenkins-ci.org/war/latest/jenkins.war
url=$(curl -s --head $mirrorUrl|awk -F': ' '$1 == "Location" { print $2 }' | sed 's/[[:space:]]*$//')
version=$(echo $url | sed 's#.*/war/\(.*\)/jenkins.war#\1#')
mkdir -p /opt/jenkins
trackingFile=/opt/jenkins/INSTALLED
installed=
if [ -f $trackingFile ]; then
installed=$(cat $trackingFile)
echo "Version installed is $installed"
fi
if [ $version != "$installed" ]; then
echo "Downloading $version from '$url'"
while ! curl -s -o /opt/jenkins/jenkins.war "$url"
do
echo "Trying again in 5 seconds"
sleep 5
done
echo $version > $trackingFile
fi
cd /opt/jenkins
exec java $JENKINS_OPTS -jar jenkins.war

View File

@@ -33,6 +33,22 @@ spec:
ports:
- containerPort: 25565
name: main
readinessProbe:
exec:
command:
- mcstatus
- localhost
- ping
initialDelaySeconds: 5
periodSeconds: 5
livenessProbe:
exec:
command:
- mcstatus
- localhost
- ping
initialDelaySeconds: 5
periodSeconds: 5
volumeMounts:
- name: mc-data
mountPath: /data

View File

@@ -1 +0,0 @@
data

View File

@@ -1,2 +0,0 @@
[start-*]
indent_size = 2

View File

@@ -1 +0,0 @@
/data/

File diff suppressed because it is too large Load Diff

View File

@@ -4,6 +4,7 @@ set -e
function buildSpigotFromSource {
echo "Building Spigot $VANILLA_VERSION from source, might take a while, get some coffee"
rm -rf /data/temp
mkdir /data/temp
cd /data/temp

View File

@@ -50,7 +50,7 @@ if [[ ! -e $installMarker ]]; then
tries=3
set +e
while ((--tries >= 0)); do
java -jar $FABRIC_INSTALLER server -version $VANILLA_VERSION -downloadMinecraft
java -jar $FABRIC_INSTALLER server -mcversion $VANILLA_VERSION -downloadMinecraft
if [[ $? == 0 ]]; then
break
fi

View File

@@ -89,7 +89,8 @@ case "X$EFFECTIVE_MANIFEST_URL" in
do
if [ ! -f $MOD_DIR/${p}_${f}.jar ]
then
url="${CURSE_URL_BASE}/${p}/files/${f}/download"
redirect_url="$(curl -Ls -o /dev/null -w %{url_effective} ${CURSE_URL_BASE}/${p})"
url="$redirect_url/download/${f}/file"
echo Downloading curseforge mod $url
# Manifest usually doesn't have mod names. Using id should be fine, tho
curl -sSL "${url}" -o $MOD_DIR/${p}_${f}.jar

View File

@@ -70,6 +70,8 @@ function customizeServerProps {
setServerProp "online-mode" "$ONLINE_MODE"
setServerProp "allow-flight" "$ALLOW_FLIGHT"
setServerProp "level-type" "${LEVEL_TYPE^^}"
setServerProp "resource-pack" "$RESOURCE_PACK"
setServerProp "resource-pack-sha1" "$RESOURCE_PACK_SHA1"
if [ -n "$DIFFICULTY" ]; then
case $DIFFICULTY in

View File

@@ -105,7 +105,7 @@ EOF
# patch CurseForge cfg file, if present
if [ -f "${FTB_DIR}/settings.cfg" ]; then
sed -i "/MAX_RAM=.*/ c MAX_RAM=${MAX_MEMORY};" "${FTB_DIR}/settings.cfg"
sed -i "s/MAX_RAM=[^;]*/MAX_RAM=${MAX_MEMORY}/" "${FTB_DIR}/settings.cfg"
fi
cd "${FTB_DIR}"

View File

@@ -1,17 +0,0 @@
FROM openjdk:8-jre
LABEL maintainer "itzg"
ENV TITAN_VERSION 0.5.4
ADD http://s3.thinkaurelius.com/downloads/titan/titan-$TITAN_VERSION-hadoop2.zip /tmp/titan.zip
RUN unzip -q /tmp/titan.zip -d /opt && \
rm /tmp/titan.zip
ENV TITAN_HOME /opt/titan-$TITAN_VERSION-hadoop2
WORKDIR $TITAN_HOME
VOLUME ["/conf","/data"]
ADD start-gremlin.sh /opt/start-gremlin.sh
CMD ["/opt/start-gremlin.sh"]

View File

@@ -1,63 +0,0 @@
Runs the Gremlin console from the Titan Graph Database's "all" distribution.
# Basic Usage
To start the Gremlin console with the default configuration files available:
docker run -it itzg/titan-gremlin
In order to adjust or further define property files to use within Gremlin,
attach a host directory to the container's `/conf` such as
docker run -it -v $(pwd)/conf:/conf itzg/titan-gremlin
After running once your host directory will be populated with the distribution-default
configuration files. Modify those or add to them and they will be available during
the next time you (re)start your container.
# Connecting to Cassandra and Elasticsearch Containers
First start containers for Cassandra and Elasticsearch (pre-2.x),
where the `--name` you choose can be arbitrary or left off to use a generated name.
docker run -d --name gremlin-cass itzg/cassandra
docker run -d --name gremlin-es itzg/elasticsearch:1.x
Now start Gremlin with networking links to those containers with the aliases
* `--link <container>:cass`
* `--link <container>:es`
such as
docker run -it --rm --link gremlin-cass:cass --link gremlin-es:es itzg/titan-gremlin
and with that you can follow the
[Graph of the Gods example](http://s3.thinkaurelius.com/docs/titan/current/getting-started.html), such as
gremlin> GraphOfTheGodsFactory.load(g)
gremlin> saturn = g.V.has('name','saturn').next()
==>v[256]
gremlin> saturn.map()
==>name=saturn
==>age=10000
gremlin> saturn.in('father').in('father').name
==>hercules
# Running and Connecting with Docker Compose
Create the following Compose content as the file `docker-compose.yml` and in
that directory invoke `docker-compose run titan` to run the Gremlin shell
with the supporting Elasticsearch and Cassandra containers.
```
titan:
image: itzg/titan-gremlin
links:
- cass
- es
cass:
image: itzg/cassandra
es:
image: itzg/elasticsearch:1.x
```

View File

@@ -1,64 +0,0 @@
#!/bin/bash
args=
if [ $(ls /conf|wc -l) = 0 ]; then
cp -r $TITAN_HOME/conf/* /conf
fi
rm -f /tmp/titan.properties
if [ -n "$CASS_PORT_9160_TCP_ADDR" ]; then
shortcut=/tmp/titan.properties
cat >> /tmp/titan.properties <<END
storage.backend=cassandra
storage.hostname=$CASS_PORT_9160_TCP_ADDR
END
elif [ -n "$CASS_ADDR" ]; then
shortcut=/tmp/titan.properties
cat >> /tmp/titan.properties <<END
storage.backend=cassandra
storage.hostname=$CASS_ADDR
END
fi
esAddr=${ES_ENV_PUBLISH_AS:-${ES_PORT_9300_TCP_ADDR}}
if [ -n "$ES_CLUSTER" -o -n "$esAddr" ]; then
shortcut=/tmp/titan.properties
cat >> /tmp/titan.properties <<END
index.search.backend=elasticsearch
index.search.elasticsearch.client-only=true
END
if [ -n "$ES_CLUSTER" ]; then
cat >> /tmp/titan.properties <<END
index.search.elasticsearch.ext.cluster.name=$ES_CLUSTER
END
fi
if [ -n "$esAddr" ]; then
# strip off the port spec, if present
esAddr=$(echo $esAddr | cut -d: -f1)
cat >> /tmp/titan.properties <<END
index.search.hostname=$esAddr
END
fi
fi
if [ -n "$shortcut" ]; then
cat > /tmp/init.groovy <<END
g = TitanFactory.open('$shortcut')
println 'The graph \'g\' was opened using $shortcut'
END
args="$args /tmp/init.groovy"
fi
# Allow a little extra time for Cassandra to be ready
sleep 1
exec $TITAN_HOME/bin/gremlin.sh $args

View File

@@ -1,54 +0,0 @@
FROM itzg/ubuntu-openjdk-7
LABEL 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"]

View File

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

View File

@@ -1,12 +0,0 @@
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()

View File

@@ -1,14 +0,0 @@
#!/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 $*

View File

@@ -1,28 +0,0 @@
<?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

@@ -1,7 +0,0 @@
import com.thinkaurelius.titan.core.TitanFactory
import com.thinkaurelius.titan.example.GraphOfTheGodsFactory
def g = TitanFactory.open('conf/titan.properties')
GraphOfTheGodsFactory.load(g)
g.shutdown()

View File

@@ -1,8 +0,0 @@
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

@@ -1,11 +0,0 @@
FROM ubuntu:trusty
LABEL maintainer "itzg"
ENV APT_GET_UPDATE 2015-10-29
RUN apt-get update
RUN DEBIAN_FRONTEND=noninteractive \
apt-get -q -y install openjdk-7-jre-headless wget unzip \
&& apt-get clean
ENV JAVA_HOME /usr/lib/jvm/java-7-openjdk-amd64

View File

@@ -1 +0,0 @@
Provides the latest OpenJDK JRE on top of Ubuntu Trusty (14.04).