mirror of
https://github.com/itzg/docker-minecraft-server.git
synced 2026-02-28 11:56:25 +00:00
Compare commits
47 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b401873298 | ||
|
|
1c9bbee3b3 | ||
|
|
5fa33c7813 | ||
|
|
581d5fde1d | ||
|
|
382336d39d | ||
|
|
5bd3a818a3 | ||
|
|
97874f3481 | ||
|
|
135bafefeb | ||
|
|
15b8c5a7e7 | ||
|
|
15990071d4 | ||
|
|
d00f9d3609 | ||
|
|
5ad745de75 | ||
|
|
b67580af2c | ||
|
|
2900062df5 | ||
|
|
67fe8931dd | ||
|
|
e6f593e8c4 | ||
|
|
8924740cfe | ||
|
|
34d4ae0b59 | ||
|
|
62a4541df5 | ||
|
|
401958c0d6 | ||
|
|
8859d223bf | ||
|
|
621962ad9c | ||
|
|
5c238af3df | ||
|
|
8e148095f0 | ||
|
|
3c55a05b1c | ||
|
|
d293a65f5e | ||
|
|
e6bfa01db5 | ||
|
|
4e122a67d3 | ||
|
|
b11863d3b2 | ||
|
|
93197ffb77 | ||
|
|
f02baa8761 | ||
|
|
19e39b84ec | ||
|
|
53800e460f | ||
|
|
e061cc7163 | ||
|
|
e61942f33e | ||
|
|
f8b97bf909 | ||
|
|
ed272da302 | ||
|
|
e8b7975295 | ||
|
|
cae1a20973 | ||
|
|
165150a852 | ||
|
|
ad2674bf8e | ||
|
|
b72266f7bf | ||
|
|
79c864ae19 | ||
|
|
451eec4db5 | ||
|
|
539f7ada70 | ||
|
|
c60156d245 | ||
|
|
281bd3660f |
@@ -2,13 +2,13 @@ version: 2
|
|||||||
jobs:
|
jobs:
|
||||||
minecraft_server:
|
minecraft_server:
|
||||||
docker:
|
docker:
|
||||||
- image: circleci/buildpack-deps:18.04
|
- image: circleci/buildpack-deps:19.10
|
||||||
steps:
|
steps:
|
||||||
- checkout
|
- checkout
|
||||||
- setup_remote_docker
|
- setup_remote_docker
|
||||||
- run:
|
- run:
|
||||||
name: Build image
|
name: Build image
|
||||||
command: docker build -t mc:$CIRCLE_BUILD_NUM minecraft-server
|
command: docker build -t mc:$CIRCLE_BUILD_NUM .
|
||||||
|
|
||||||
workflows:
|
workflows:
|
||||||
version: 2
|
version: 2
|
||||||
|
|||||||
4
.dockerignore
Normal file
4
.dockerignore
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
data
|
||||||
|
examples
|
||||||
|
k8s-examples
|
||||||
|
.idea
|
||||||
@@ -1,5 +1,2 @@
|
|||||||
root = true
|
[start-*]
|
||||||
|
indent_size = 2
|
||||||
[*]
|
|
||||||
end_of_line = lf
|
|
||||||
indent_style = space
|
|
||||||
6
.github/no-response.yml
vendored
Normal file
6
.github/no-response.yml
vendored
Normal 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.
|
||||||
3
.gitignore
vendored
3
.gitignore
vendored
@@ -1,2 +1,3 @@
|
|||||||
|
/data/
|
||||||
|
/.idea/
|
||||||
*.iml
|
*.iml
|
||||||
.idea
|
|
||||||
|
|||||||
67
Dockerfile
Normal file
67
Dockerfile
Normal file
@@ -0,0 +1,67 @@
|
|||||||
|
FROM openjdk:8u212-jre-alpine
|
||||||
|
|
||||||
|
LABEL maintainer "itzg"
|
||||||
|
|
||||||
|
RUN apk add --no-cache -U \
|
||||||
|
openssl \
|
||||||
|
imagemagick \
|
||||||
|
lsof \
|
||||||
|
su-exec \
|
||||||
|
shadow \
|
||||||
|
bash \
|
||||||
|
curl iputils wget \
|
||||||
|
git \
|
||||||
|
jq \
|
||||||
|
mysql-client \
|
||||||
|
tzdata \
|
||||||
|
rsync \
|
||||||
|
nano \
|
||||||
|
python python-dev py2-pip
|
||||||
|
|
||||||
|
RUN pip install mcstatus yq
|
||||||
|
|
||||||
|
HEALTHCHECK --start-period=1m CMD mcstatus localhost:$SERVER_PORT ping
|
||||||
|
|
||||||
|
RUN addgroup -g 1000 minecraft \
|
||||||
|
&& adduser -Ss /bin/false -u 1000 -G minecraft -h /home/minecraft minecraft \
|
||||||
|
&& mkdir -m 777 /data /mods /config /plugins \
|
||||||
|
&& chown minecraft:minecraft /data /config /mods /plugins /home/minecraft
|
||||||
|
|
||||||
|
EXPOSE 25565 25575
|
||||||
|
|
||||||
|
RUN echo 'hosts: files dns' > /etc/nsswitch.conf
|
||||||
|
|
||||||
|
ARG ARCH=amd64
|
||||||
|
|
||||||
|
ARG EASY_ADD_VER=0.3.0
|
||||||
|
ADD https://github.com/itzg/easy-add/releases/download/${EASY_ADD_VER}/easy-add_${EASY_ADD_VER}_linux_${ARCH} /usr/bin/easy-add
|
||||||
|
RUN chmod +x /usr/bin/easy-add
|
||||||
|
|
||||||
|
ARG RESTIFY_VER=1.2.1
|
||||||
|
RUN easy-add --file restify --from https://github.com/itzg/restify/releases/download/${RESTIFY_VER}/restify_${RESTIFY_VER}_linux_${ARCH}.tar.gz
|
||||||
|
|
||||||
|
ARG RCON_CLI_VER=1.4.7
|
||||||
|
RUN easy-add --file rcon-cli --from https://github.com/itzg/rcon-cli/releases/download/${RCON_CLI_VER}/rcon-cli_${RCON_CLI_VER}_linux_${ARCH}.tar.gz
|
||||||
|
|
||||||
|
ARG MC_RUN_VER=1.3.3
|
||||||
|
RUN easy-add --file mc-server-runner --from https://github.com/itzg/mc-server-runner/releases/download/${MC_RUN_VER}/mc-server-runner_${MC_RUN_VER}_linux_${ARCH}.tar.gz
|
||||||
|
|
||||||
|
COPY mcadmin.jq /usr/share
|
||||||
|
RUN chmod +x /usr/local/bin/*
|
||||||
|
|
||||||
|
VOLUME ["/data","/mods","/config"]
|
||||||
|
COPY server.properties /tmp/server.properties
|
||||||
|
WORKDIR /data
|
||||||
|
|
||||||
|
ENTRYPOINT [ "/start" ]
|
||||||
|
|
||||||
|
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_"
|
||||||
|
|
||||||
|
COPY start* /
|
||||||
|
RUN dos2unix /start* && chmod +x /start*
|
||||||
10
build
10
build
@@ -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
|
|
||||||
11
circle.yml
11
circle.yml
@@ -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
18
development/update-multiarch.sh
Executable 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}
|
||||||
93
docker-versions-create.sh
Executable file
93
docker-versions-create.sh
Executable file
@@ -0,0 +1,93 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#set -x
|
||||||
|
# Use this variable to indicate a list of branches that docker hub is watching
|
||||||
|
branches_list=('openj9' 'openj9-nightly' 'adopt11')
|
||||||
|
|
||||||
|
function TrapExit {
|
||||||
|
echo "Checking out back in master"
|
||||||
|
git checkout master
|
||||||
|
}
|
||||||
|
|
||||||
|
batchMode=false
|
||||||
|
|
||||||
|
while getopts "b" arg
|
||||||
|
do
|
||||||
|
case $arg in
|
||||||
|
b)
|
||||||
|
batchMode=true
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Unsupported arg $arg"
|
||||||
|
exit 2
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
${batchMode} && echo "Using batch mode"
|
||||||
|
|
||||||
|
trap TrapExit EXIT SIGTERM
|
||||||
|
|
||||||
|
test -d ./.git || { echo ".git folder was not found. Please start this script from root directory of the project!";
|
||||||
|
exit 1; }
|
||||||
|
|
||||||
|
# Making sure we are in master
|
||||||
|
git checkout master
|
||||||
|
git pull --all || { echo "Can't pull the repo!"; \
|
||||||
|
exit 1; }
|
||||||
|
|
||||||
|
git_branches=$(git branch -a)
|
||||||
|
|
||||||
|
for branch in "${branches_list[@]}"; do
|
||||||
|
if [[ "$git_branches" != *"$branch"* ]]; then
|
||||||
|
echo "Can't update $branch because I can't find it in the list of branches."
|
||||||
|
exit 1
|
||||||
|
else
|
||||||
|
echo "Branch $branch found. Working with it."
|
||||||
|
git checkout "$branch" || { echo "Can't checkout into the branch. Don't know the cause."; \
|
||||||
|
exit 1; }
|
||||||
|
proceed='False'
|
||||||
|
while [[ "$proceed" == "False" ]]; do
|
||||||
|
if git merge -m 'Auto-merging via docker-versions-create' master; then
|
||||||
|
proceed="True"
|
||||||
|
echo "Branch $branch updated to current master successfully"
|
||||||
|
# pushing changes to remote for this branch
|
||||||
|
git commit -m "Auto merge branch with master" -a
|
||||||
|
# push may fail if remote doesn't have this branch yet. In this case - sending branch
|
||||||
|
git push || git push -u origin "$branch" || { echo "Can't push changes to the origin."; exit 1; }
|
||||||
|
elif ${batchMode}; then
|
||||||
|
status=$?
|
||||||
|
echo "Git merge failed in batch mode"
|
||||||
|
exit ${status}
|
||||||
|
# and trap exit gets us back to master
|
||||||
|
else
|
||||||
|
cat<<EOL
|
||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
Master merge in the branch $branch encountered an error!
|
||||||
|
You may try to fix the error and merge again. (Commit changes)
|
||||||
|
Or skip this branch merge completely.
|
||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
EOL
|
||||||
|
printf "Should we try again? (y):"
|
||||||
|
read -r answer
|
||||||
|
if [[ "$answer" == '' ]] || [[ "$answer" == 'y' ]] || [[ "$answer" == 'Y' ]]; then
|
||||||
|
# If you use non-local editor or files are changed in repo
|
||||||
|
cat <<EOL
|
||||||
|
|
||||||
|
The following commands may encounter an error!
|
||||||
|
This is completely fine if the changes were made locally and remote branch doesn't know about them.
|
||||||
|
|
||||||
|
EOL
|
||||||
|
# Updating branch from remote before trying again
|
||||||
|
git checkout master
|
||||||
|
git fetch --all
|
||||||
|
git pull -a
|
||||||
|
git checkout "$branch"
|
||||||
|
continue
|
||||||
|
else
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
done
|
||||||
@@ -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"]
|
|
||||||
@@ -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.
|
|
||||||
103
gitblit/start.sh
103
gitblit/start.sh
@@ -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
|
|
||||||
1
jekyll-github-pages/.gitignore
vendored
1
jekyll-github-pages/.gitignore
vendored
@@ -1 +0,0 @@
|
|||||||
/site
|
|
||||||
@@ -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"]
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
source 'https://rubygems.org'
|
|
||||||
gem 'github-pages'
|
|
||||||
@@ -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.
|
|
||||||
@@ -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
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
highlighter: pygments
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
<footer>
|
|
||||||
<i>Goodbye</i>
|
|
||||||
</footer>
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
<header>
|
|
||||||
<h1>{{ page.title }}</h1>
|
|
||||||
</header>
|
|
||||||
@@ -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>
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
{% include top.html %}
|
|
||||||
|
|
||||||
<body>
|
|
||||||
|
|
||||||
{% include header.html %}
|
|
||||||
|
|
||||||
{{ content }}
|
|
||||||
|
|
||||||
{% include footer.html %}
|
|
||||||
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
---
|
|
||||||
layout: default
|
|
||||||
title: Powered by Jekyll
|
|
||||||
overview: true
|
|
||||||
---
|
|
||||||
This is where the content goes.
|
|
||||||
@@ -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"]
|
|
||||||
@@ -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:
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
# 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
|
|
||||||
@@ -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
|
|
||||||
@@ -33,6 +33,22 @@ spec:
|
|||||||
ports:
|
ports:
|
||||||
- containerPort: 25565
|
- containerPort: 25565
|
||||||
name: main
|
name: main
|
||||||
|
readinessProbe:
|
||||||
|
exec:
|
||||||
|
command:
|
||||||
|
- mcstatus
|
||||||
|
- localhost
|
||||||
|
- ping
|
||||||
|
initialDelaySeconds: 5
|
||||||
|
periodSeconds: 5
|
||||||
|
livenessProbe:
|
||||||
|
exec:
|
||||||
|
command:
|
||||||
|
- mcstatus
|
||||||
|
- localhost
|
||||||
|
- ping
|
||||||
|
initialDelaySeconds: 5
|
||||||
|
periodSeconds: 5
|
||||||
volumeMounts:
|
volumeMounts:
|
||||||
- name: mc-data
|
- name: mc-data
|
||||||
mountPath: /data
|
mountPath: /data
|
||||||
@@ -1 +0,0 @@
|
|||||||
data
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
[start-*]
|
|
||||||
indent_size = 2
|
|
||||||
1
minecraft-server/.gitignore
vendored
1
minecraft-server/.gitignore
vendored
@@ -1 +0,0 @@
|
|||||||
/data/
|
|
||||||
@@ -1,85 +0,0 @@
|
|||||||
FROM openjdk:8u212-jre-alpine
|
|
||||||
|
|
||||||
LABEL maintainer "itzg"
|
|
||||||
|
|
||||||
RUN apk add --no-cache -U \
|
|
||||||
openssl \
|
|
||||||
imagemagick \
|
|
||||||
lsof \
|
|
||||||
su-exec \
|
|
||||||
shadow \
|
|
||||||
bash \
|
|
||||||
curl iputils wget \
|
|
||||||
git \
|
|
||||||
jq \
|
|
||||||
mysql-client \
|
|
||||||
tzdata \
|
|
||||||
rsync \
|
|
||||||
nano \
|
|
||||||
python python-dev py2-pip
|
|
||||||
|
|
||||||
RUN pip install mcstatus yq
|
|
||||||
|
|
||||||
HEALTHCHECK CMD mcstatus localhost:$SERVER_PORT ping
|
|
||||||
|
|
||||||
RUN addgroup -g 1000 minecraft \
|
|
||||||
&& adduser -Ss /bin/false -u 1000 -G minecraft -h /home/minecraft minecraft \
|
|
||||||
&& mkdir -m 777 /data /mods /config /plugins \
|
|
||||||
&& chown minecraft:minecraft /data /config /mods /plugins /home/minecraft
|
|
||||||
|
|
||||||
EXPOSE 25565 25575
|
|
||||||
|
|
||||||
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
|
|
||||||
RUN tar -x -C /usr/local/bin -f /tmp/restify.tgz restify && \
|
|
||||||
rm /tmp/restify.tgz
|
|
||||||
|
|
||||||
ADD https://github.com/itzg/rcon-cli/releases/download/${RCON_CLI_VER}/rcon-cli_${RCON_CLI_VER}_linux_${ARCH}.tar.gz /tmp/rcon-cli.tgz
|
|
||||||
RUN tar -x -C /usr/local/bin -f /tmp/rcon-cli.tgz rcon-cli && \
|
|
||||||
rm /tmp/rcon-cli.tgz
|
|
||||||
|
|
||||||
ADD https://github.com/itzg/mc-server-runner/releases/download/${MC_SERVER_RUNNER_VER}/mc-server-runner_${MC_SERVER_RUNNER_VER}_linux_${ARCH}.tar.gz /tmp/mc-server-runner.tgz
|
|
||||||
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/*
|
|
||||||
|
|
||||||
VOLUME ["/data","/mods","/config"]
|
|
||||||
COPY server.properties /tmp/server.properties
|
|
||||||
WORKDIR /data
|
|
||||||
|
|
||||||
ENTRYPOINT [ "/start" ]
|
|
||||||
|
|
||||||
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 \
|
|
||||||
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_"
|
|
||||||
|
|
||||||
COPY start* /
|
|
||||||
RUN dos2unix /start* && chmod +x /start*
|
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -1,15 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
if [ "$REPLACE_ENV_VARIABLES" = "TRUE" ]; then
|
|
||||||
echo "Replacing env variables in configs that match the prefix $ENV_VARIABLE_PREFIX..."
|
|
||||||
while IFS='=' read -r name value ; do
|
|
||||||
# check if name of env variable matches the prefix
|
|
||||||
# sanity check environment variables to avoid code injections
|
|
||||||
if [[ "$name" = $ENV_VARIABLE_PREFIX* ]] && [[ $value =~ ^[0-9a-zA-Z_:/=?.+\-]*$ ]] && [[ $name =~ ^[0-9a-zA-Z_\-]*$ ]]; then
|
|
||||||
echo "Replacing $name with $value ..."
|
|
||||||
find /data/ -type f \( -name "*.yml" -or -name "*.yaml" -or -name "*.txt" -or -name "*.cfg" -or -name "*.properties" \) -exec sed -i 's#${'"$name"'}#'"$value"'#g' {} \;
|
|
||||||
fi
|
|
||||||
done < <(env)
|
|
||||||
fi
|
|
||||||
|
|
||||||
exec /start-minecraftFinalSetup $@
|
|
||||||
@@ -6,14 +6,8 @@ shopt -s nullglob
|
|||||||
export HOME=/data
|
export HOME=/data
|
||||||
|
|
||||||
if [ ! -e /data/eula.txt ]; then
|
if [ ! -e /data/eula.txt ]; then
|
||||||
if [ "$EULA" != "" ]; then
|
EULA="${EULA,,}"
|
||||||
echo "# Generated via Docker on $(date)" > eula.txt
|
if [ "$EULA" != "true" ]; then
|
||||||
echo "eula=$EULA" >> eula.txt
|
|
||||||
if [ $? != 0 ]; then
|
|
||||||
echo "ERROR: unable to write eula to /data. Please make sure attached directory is writable by uid=${UID}"
|
|
||||||
exit 2
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
echo ""
|
echo ""
|
||||||
echo "Please accept the Minecraft EULA at"
|
echo "Please accept the Minecraft EULA at"
|
||||||
echo " https://account.mojang.com/documents/minecraft_eula"
|
echo " https://account.mojang.com/documents/minecraft_eula"
|
||||||
@@ -22,8 +16,16 @@ if [ ! -e /data/eula.txt ]; then
|
|||||||
echo ""
|
echo ""
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
echo "# Generated via Docker on $(date)" > eula.txt
|
||||||
|
echo "eula=$EULA" >> eula.txt
|
||||||
|
if [ $? != 0 ]; then
|
||||||
|
echo "ERROR: unable to write eula to /data. Please make sure attached directory is writable by uid=${UID}"
|
||||||
|
exit 2
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
echo "Running as uid=$(id -u) gid=$(id -g) with /data as '$(ls -lnd /data)'"
|
echo "Running as uid=$(id -u) gid=$(id -g) with /data as '$(ls -lnd /data)'"
|
||||||
|
|
||||||
if ! touch /data/.verify_access; then
|
if ! touch /data/.verify_access; then
|
||||||
@@ -4,6 +4,7 @@ set -e
|
|||||||
|
|
||||||
function buildSpigotFromSource {
|
function buildSpigotFromSource {
|
||||||
echo "Building Spigot $VANILLA_VERSION from source, might take a while, get some coffee"
|
echo "Building Spigot $VANILLA_VERSION from source, might take a while, get some coffee"
|
||||||
|
rm -rf /data/temp
|
||||||
mkdir /data/temp
|
mkdir /data/temp
|
||||||
cd /data/temp
|
cd /data/temp
|
||||||
|
|
||||||
@@ -1,5 +1,7 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
set -u
|
set -eu
|
||||||
|
|
||||||
|
. /start-utils
|
||||||
|
|
||||||
export TYPE=FABRIC
|
export TYPE=FABRIC
|
||||||
|
|
||||||
@@ -28,8 +30,9 @@ elif [[ ! -e $FABRIC_INSTALLER ]]; then
|
|||||||
exit 2
|
exit 2
|
||||||
fi
|
fi
|
||||||
|
|
||||||
installMarker=".fabric-installed-${FABRIC_VERSION:-manual}"
|
installMarker=".fabric-installed-${VANILLA_VERSION}-${FABRIC_VERSION:-manual}"
|
||||||
|
|
||||||
|
debug Checking for installMarker ${installMarker}
|
||||||
if [[ ! -e $installMarker ]]; then
|
if [[ ! -e $installMarker ]]; then
|
||||||
if [[ ! -e $FABRIC_INSTALLER ]]; then
|
if [[ ! -e $FABRIC_INSTALLER ]]; then
|
||||||
if [[ -z $FABRIC_INSTALLER_URL ]]; then
|
if [[ -z $FABRIC_INSTALLER_URL ]]; then
|
||||||
@@ -46,11 +49,15 @@ if [[ ! -e $installMarker ]]; then
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "Installing Fabric $FABRIC_VERSION using $FABRIC_INSTALLER"
|
if isDebugging; then
|
||||||
|
debug "Installing Fabric $FABRIC_VERSION using $FABRIC_INSTALLER with mcversion ${VANILLA_VERSION}"
|
||||||
|
else
|
||||||
|
echo "Installing Fabric $FABRIC_VERSION using $FABRIC_INSTALLER"
|
||||||
|
fi
|
||||||
tries=3
|
tries=3
|
||||||
set +e
|
set +e
|
||||||
while ((--tries >= 0)); do
|
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
|
if [[ $? == 0 ]]; then
|
||||||
break
|
break
|
||||||
fi
|
fi
|
||||||
@@ -1,11 +1,11 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
export SERVER=paper_server.jar
|
export SERVER=paper_server-${VANILLA_VERSION}.jar
|
||||||
if [ ! -f $SERVER ] || [ -n "$FORCE_REDOWNLOAD" ]; then
|
if [ ! -f "$SERVER" ] || [ -n "$FORCE_REDOWNLOAD" ]; then
|
||||||
downloadUrl=${PAPER_DOWNLOAD_URL:-https://papermc.io/api/v1/paper/${VANILLA_VERSION}/latest/download}
|
downloadUrl=${PAPER_DOWNLOAD_URL:-https://papermc.io/api/v1/paper/${VANILLA_VERSION}/latest/download}
|
||||||
echo "Downloading Paper $VANILLA_VERSION from $downloadUrl ..."
|
echo "Downloading Paper $VANILLA_VERSION from $downloadUrl ..."
|
||||||
curl -fsSL -o $SERVER "$downloadUrl"
|
curl -fsSL -o "$SERVER" "$downloadUrl"
|
||||||
if [ ! -f $SERVER ]; then
|
if [ ! -f "$SERVER" ]; then
|
||||||
echo "ERROR: failed to download from $downloadUrl (status=$?)"
|
echo "ERROR: failed to download from $downloadUrl (status=$?)"
|
||||||
exit 3
|
exit 3
|
||||||
fi
|
fi
|
||||||
@@ -1,5 +1,9 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
. /start-utils
|
||||||
|
|
||||||
# CURSE_URL_BASE used in manifest downloads below
|
# CURSE_URL_BASE used in manifest downloads below
|
||||||
CURSE_URL_BASE=${CURSE_URL_BASE:-https://minecraft.curseforge.com/projects}
|
CURSE_URL_BASE=${CURSE_URL_BASE:-https://minecraft.curseforge.com/projects}
|
||||||
|
|
||||||
@@ -74,10 +78,20 @@ done
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ "$MANIFEST" ]]; then
|
if [[ "$MANIFEST" ]]; then
|
||||||
EFFECTIVE_MANIFEST_URL=$(curl -Ls -o /dev/null -w %{url_effective} $MANIFEST)
|
if [[ -e "$MANIFEST" ]]; then
|
||||||
case "X$EFFECTIVE_MANIFEST_URL" in
|
EFFECTIVE_MANIFEST_FILE=$MANIFEST
|
||||||
|
elif isURL "$MANIFEST"; then
|
||||||
|
EFFECTIVE_MANIFEST_FILE=/tmp/manifest.json
|
||||||
|
EFFECTIVE_MANIFEST_URL=$(curl -Ls -o /dev/null -w %{url_effective} $MANIFEST)
|
||||||
|
curl -Ls -o $EFFECTIVE_MANIFEST_FILE "$EFFECTIVE_MANIFEST_URL"
|
||||||
|
else
|
||||||
|
echo "MANIFEST='$MANIFEST' is not a valid manifest url or location"
|
||||||
|
exit 2
|
||||||
|
fi
|
||||||
|
|
||||||
|
case "X$EFFECTIVE_MANIFEST_FILE" in
|
||||||
X*.json)
|
X*.json)
|
||||||
if [ -f "${EFFECTIVE_MANIFEST_URL}" ]; then
|
if [ -f "${EFFECTIVE_MANIFEST_FILE}" ]; then
|
||||||
MOD_DIR=${FTB_BASE_DIR:-/data}/mods
|
MOD_DIR=${FTB_BASE_DIR:-/data}/mods
|
||||||
if [ ! -d "$MOD_DIR" ]
|
if [ ! -d "$MOD_DIR" ]
|
||||||
then
|
then
|
||||||
@@ -85,11 +99,12 @@ case "X$EFFECTIVE_MANIFEST_URL" in
|
|||||||
mkdir -p "$MOD_DIR"
|
mkdir -p "$MOD_DIR"
|
||||||
fi
|
fi
|
||||||
echo "Starting manifest download..."
|
echo "Starting manifest download..."
|
||||||
cat "${EFFECTIVE_MANIFEST_URL}" | jq -r '.files[] | (.projectID|tostring) + " " + (.fileID|tostring)'| while read -r p f
|
cat "${EFFECTIVE_MANIFEST_FILE}" | jq -r '.files[] | (.projectID|tostring) + " " + (.fileID|tostring)'| while read -r p f
|
||||||
do
|
do
|
||||||
if [ ! -f $MOD_DIR/${p}_${f}.jar ]
|
if [ ! -f $MOD_DIR/${p}_${f}.jar ]
|
||||||
then
|
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
|
echo Downloading curseforge mod $url
|
||||||
# Manifest usually doesn't have mod names. Using id should be fine, tho
|
# Manifest usually doesn't have mod names. Using id should be fine, tho
|
||||||
curl -sSL "${url}" -o $MOD_DIR/${p}_${f}.jar
|
curl -sSL "${url}" -o $MOD_DIR/${p}_${f}.jar
|
||||||
@@ -105,4 +120,25 @@ case "X$EFFECTIVE_MANIFEST_URL" in
|
|||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [[ "${GENERIC_PACK}" ]]; then
|
||||||
|
if isURL "${GENERIC_PACK}"; then
|
||||||
|
generic_pack_url=${GENERIC_PACK}
|
||||||
|
GENERIC_PACK=/tmp/$(basename ${generic_pack_url})
|
||||||
|
echo "Downloading generic pack from ${generic_pack_url} ..."
|
||||||
|
curl -fsSL -o ${GENERIC_PACK} ${generic_pack_url}
|
||||||
|
fi
|
||||||
|
|
||||||
|
sum_file=/data/.generic_pack.sum
|
||||||
|
if ! sha256sum -c ${sum_file} -s 2> /dev/null; then
|
||||||
|
base_dir=/tmp/generic_pack_base
|
||||||
|
mkdir -p ${base_dir}
|
||||||
|
unzip -q -d ${base_dir} ${GENERIC_PACK}
|
||||||
|
depth=$(( ${GENERIC_PACK_STRIP_DIRS:-1} + 1 ))
|
||||||
|
echo "Applying generic pack, stripping $(( depth - 1 )) level ..."
|
||||||
|
find ${base_dir} -type d -mindepth $depth -maxdepth $depth -exec cp -r {} /data/ +
|
||||||
|
rm -rf ${base_dir}
|
||||||
|
sha256sum ${GENERIC_PACK} > ${sum_file}
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
exec /start-finalSetup03Modconfig $@
|
exec /start-finalSetup03Modconfig $@
|
||||||
@@ -49,6 +49,7 @@ function customizeServerProps {
|
|||||||
setServerProp "spawn-animals" "$SPAWN_ANIMALS"
|
setServerProp "spawn-animals" "$SPAWN_ANIMALS"
|
||||||
setServerProp "spawn-monsters" "$SPAWN_MONSTERS"
|
setServerProp "spawn-monsters" "$SPAWN_MONSTERS"
|
||||||
setServerProp "spawn-npcs" "$SPAWN_NPCS"
|
setServerProp "spawn-npcs" "$SPAWN_NPCS"
|
||||||
|
setServerProp "spawn-protection" "$SPAWN_PROTECTION"
|
||||||
setServerProp "generate-structures" "$GENERATE_STRUCTURES"
|
setServerProp "generate-structures" "$GENERATE_STRUCTURES"
|
||||||
setServerProp "view-distance" "$VIEW_DISTANCE"
|
setServerProp "view-distance" "$VIEW_DISTANCE"
|
||||||
setServerProp "hardcore" "$HARDCORE"
|
setServerProp "hardcore" "$HARDCORE"
|
||||||
@@ -70,6 +71,8 @@ function customizeServerProps {
|
|||||||
setServerProp "online-mode" "$ONLINE_MODE"
|
setServerProp "online-mode" "$ONLINE_MODE"
|
||||||
setServerProp "allow-flight" "$ALLOW_FLIGHT"
|
setServerProp "allow-flight" "$ALLOW_FLIGHT"
|
||||||
setServerProp "level-type" "${LEVEL_TYPE^^}"
|
setServerProp "level-type" "${LEVEL_TYPE^^}"
|
||||||
|
setServerProp "resource-pack" "$RESOURCE_PACK"
|
||||||
|
setServerProp "resource-pack-sha1" "$RESOURCE_PACK_SHA1"
|
||||||
|
|
||||||
if [ -n "$DIFFICULTY" ]; then
|
if [ -n "$DIFFICULTY" ]; then
|
||||||
case $DIFFICULTY in
|
case $DIFFICULTY in
|
||||||
20
start-finalSetup05EnvVariables
Normal file
20
start-finalSetup05EnvVariables
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
if [ "${REPLACE_ENV_VARIABLES^^}" = "TRUE" ]; then
|
||||||
|
echo "Replacing env variables in configs that match the prefix $ENV_VARIABLE_PREFIX..."
|
||||||
|
while IFS='=' read -r name value ; do
|
||||||
|
# check if name of env variable matches the prefix
|
||||||
|
# sanity check environment variables to avoid code injections
|
||||||
|
if [[ "$name" = $ENV_VARIABLE_PREFIX* ]] \
|
||||||
|
&& [[ $value =~ ^[0-9a-zA-Z_:/=?.+\-]*$ ]] \
|
||||||
|
&& [[ $name =~ ^[0-9a-zA-Z_\-]*$ ]]; then
|
||||||
|
echo "Replacing $name with $value ..."
|
||||||
|
find /data/ -type f \
|
||||||
|
\( -name "*.yml" -or -name "*.yaml" -or -name "*.txt" -or -name "*.cfg" \
|
||||||
|
-or -name "*.conf" -or -name "*.properties" \) \
|
||||||
|
-exec sed -i 's#${'"$name"'}#'"$value"'#g' {} \;
|
||||||
|
fi
|
||||||
|
done < <(env)
|
||||||
|
fi
|
||||||
|
|
||||||
|
exec /start-minecraftFinalSetup $@
|
||||||
@@ -2,14 +2,16 @@
|
|||||||
|
|
||||||
. /start-utils
|
. /start-utils
|
||||||
|
|
||||||
if [ -n "$OPS" -a ! -e ops.txt.converted ]; then
|
if [ -n "$OPS" ]; then
|
||||||
echo "Setting ops"
|
echo "Setting/adding ops"
|
||||||
echo $OPS | awk -v RS=, '{print}' >> ops.txt
|
rm -rf ops.txt.converted
|
||||||
|
echo $OPS | awk -v RS=, '{print}' > ops.txt
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -n "$WHITELIST" -a ! -e white-list.txt.converted ]; then
|
if [ -n "$WHITELIST" ]; then
|
||||||
echo "Setting whitelist"
|
echo "Setting whitelist"
|
||||||
echo $WHITELIST | awk -v RS=, '{print}' >> white-list.txt
|
rm -rf white-list.txt.converted
|
||||||
|
echo $WHITELIST | awk -v RS=, '{print}' > white-list.txt
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -n "$ICON" -a ! -e server-icon.png ]; then
|
if [ -n "$ICON" -a ! -e server-icon.png ]; then
|
||||||
@@ -100,12 +102,12 @@ if [[ ${TYPE} == "FEED-THE-BEAST" ]]; then
|
|||||||
cat > "${FTB_DIR}/settings-local.sh" <<EOF
|
cat > "${FTB_DIR}/settings-local.sh" <<EOF
|
||||||
export MIN_RAM="${INIT_MEMORY}"
|
export MIN_RAM="${INIT_MEMORY}"
|
||||||
export MAX_RAM="${MAX_MEMORY}"
|
export MAX_RAM="${MAX_MEMORY}"
|
||||||
export JAVA_PARAMETERS="-Xms${INIT_MEMORY} $expandedDOpts"
|
export JAVA_PARAMETERS="${JVM_XX_OPTS} -Xms${INIT_MEMORY} ${JVM_OPTS} $expandedDOpts"
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
# patch CurseForge cfg file, if present
|
# patch CurseForge cfg file, if present
|
||||||
if [ -f "${FTB_DIR}/settings.cfg" ]; then
|
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
|
fi
|
||||||
|
|
||||||
cd "${FTB_DIR}"
|
cd "${FTB_DIR}"
|
||||||
@@ -3,7 +3,7 @@
|
|||||||
function isURL {
|
function isURL {
|
||||||
local value=$1
|
local value=$1
|
||||||
|
|
||||||
if [[ ${value:0:8} == "https://" || ${value:0:7} = "http://" ]]; then
|
if [[ ${value:0:8} == "https://" || ${value:0:7} == "http://" ]]; then
|
||||||
return 0
|
return 0
|
||||||
else
|
else
|
||||||
return 1
|
return 1
|
||||||
@@ -28,7 +28,7 @@ function isTrue {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function isDebugging {
|
function isDebugging {
|
||||||
if [[ ${DEBUG^^} = TRUE ]]; then
|
if [[ -v DEBUG ]] && [[ ${DEBUG^^} = TRUE ]]; then
|
||||||
return 0
|
return 0
|
||||||
else
|
else
|
||||||
return 1
|
return 1
|
||||||
@@ -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"]
|
|
||||||
@@ -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
|
|
||||||
```
|
|
||||||
@@ -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
|
|
||||||
@@ -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"]
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
/opt/titan/bin/gremlin.sh $*
|
|
||||||
@@ -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()
|
|
||||||
|
|
||||||
|
|
||||||
@@ -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 $*
|
|
||||||
@@ -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>
|
|
||||||
@@ -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()
|
|
||||||
@@ -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
|
|
||||||
@@ -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
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
Provides the latest OpenJDK JRE on top of Ubuntu Trusty (14.04).
|
|
||||||
Reference in New Issue
Block a user