mirror of
https://github.com/itzg/docker-minecraft-server.git
synced 2026-10-11 06:27:13 +00:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8e148095f0 | ||
|
|
3c55a05b1c | ||
|
|
d293a65f5e | ||
|
|
e6bfa01db5 | ||
|
|
4e122a67d3 | ||
|
|
b11863d3b2 | ||
|
|
93197ffb77 | ||
|
|
f02baa8761 | ||
|
|
19e39b84ec | ||
|
|
53800e460f | ||
|
|
e061cc7163 | ||
|
|
e61942f33e | ||
|
|
f8b97bf909 | ||
|
|
ed272da302 | ||
|
|
e8b7975295 | ||
|
|
cae1a20973 | ||
|
|
165150a852 | ||
|
|
ad2674bf8e | ||
|
|
b72266f7bf | ||
|
|
79c864ae19 | ||
|
|
451eec4db5 | ||
|
|
539f7ada70 | ||
|
|
c60156d245 | ||
|
|
281bd3660f |
No files matched your search
@@ -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
|
||||||
|
|||||||
@@ -0,0 +1,4 @@
|
|||||||
|
data
|
||||||
|
examples
|
||||||
|
k8s-examples
|
||||||
|
.idea
|
||||||
+2
-5
@@ -1,5 +1,2 @@
|
|||||||
root = true
|
[start-*]
|
||||||
|
indent_size = 2
|
||||||
[*]
|
|
||||||
end_of_line = lf
|
|
||||||
indent_style = space
|
|
||||||
@@ -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.
|
||||||
+2
-1
@@ -1,2 +1,3 @@
|
|||||||
|
/data/
|
||||||
|
/.idea/
|
||||||
*.iml
|
*.iml
|
||||||
.idea
|
|
||||||
@@ -34,7 +34,6 @@ RUN echo 'hosts: files dns' > /etc/nsswitch.conf
|
|||||||
ARG RESTIFY_VER=1.1.6
|
ARG RESTIFY_VER=1.1.6
|
||||||
ARG RCON_CLI_VER=1.4.6
|
ARG RCON_CLI_VER=1.4.6
|
||||||
ARG MC_SERVER_RUNNER_VER=1.3.2
|
ARG MC_SERVER_RUNNER_VER=1.3.2
|
||||||
ARG TOF_BUILDTOOLS_VER=1.2.0
|
|
||||||
ARG ARCH=amd64
|
ARG ARCH=amd64
|
||||||
|
|
||||||
ADD https://github.com/itzg/restify/releases/download/${RESTIFY_VER}/restify_${RESTIFY_VER}_linux_${ARCH}.tar.gz /tmp/restify.tgz
|
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 && \
|
RUN tar -x -C /usr/local/bin -f /tmp/mc-server-runner.tgz mc-server-runner && \
|
||||||
rm /tmp/mc-server-runner.tgz
|
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
|
COPY mcadmin.jq /usr/share
|
||||||
RUN chmod +x /usr/local/bin/*
|
RUN chmod +x /usr/local/bin/*
|
||||||
|
|
||||||
@@ -78,6 +61,7 @@ ENV UID=1000 GID=1000 \
|
|||||||
JVM_XX_OPTS="-XX:+UseG1GC" MEMORY="1G" \
|
JVM_XX_OPTS="-XX:+UseG1GC" MEMORY="1G" \
|
||||||
TYPE=VANILLA VERSION=LATEST FORGEVERSION=RECOMMENDED SPONGEBRANCH=STABLE SPONGEVERSION= FABRICVERSION=LATEST LEVEL=world \
|
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 \
|
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" \
|
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_"
|
REPLACE_ENV_VARIABLES="FALSE" ENV_VARIABLE_PREFIX="CFG_"
|
||||||
|
|
||||||
File renamed without changes.
@@ -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
@@ -1,11 +0,0 @@
|
|||||||
machine:
|
|
||||||
services:
|
|
||||||
- docker
|
|
||||||
|
|
||||||
test:
|
|
||||||
override:
|
|
||||||
- ./build
|
|
||||||
|
|
||||||
notify:
|
|
||||||
webhooks:
|
|
||||||
- url: https://webhooks.gitter.im/e/4726bb683d8aed018486
|
|
||||||
Executable
+18
@@ -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}
|
||||||
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
@@ -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.
|
|
||||||
@@ -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 +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
|
|
||||||
+16
@@ -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
|
||||||
File renamed without changes.
@@ -1 +0,0 @@
|
|||||||
data
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
[start-*]
|
|
||||||
indent_size = 2
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
/data/
|
|
||||||
+3
-1023
File diff suppressed because it is too large.
Load diff
File renamed without changes.
File renamed without changes.
File renamed without changes.
@@ -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
|
||||||
|
|
||||||
File renamed without changes.
File renamed without changes.
@@ -50,7 +50,7 @@ if [[ ! -e $installMarker ]]; then
|
|||||||
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
|
||||||
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
@@ -89,7 +89,8 @@ case "X$EFFECTIVE_MANIFEST_URL" in
|
|||||||
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
|
||||||
File renamed without changes.
+2
@@ -70,6 +70,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
|
||||||
File renamed without changes.
@@ -105,7 +105,7 @@ 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}"
|
||||||
File renamed without changes.
@@ -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