Added folders as well...
This commit is contained in:
Executable
+8
@@ -0,0 +1,8 @@
|
||||
#!/bin/sh
|
||||
|
||||
SCRIPT_DIR=$(dirname -- "$0")
|
||||
|
||||
mkdir -p /data/bedrock/server
|
||||
mkdir -p /data/backup/bedrock
|
||||
|
||||
docker stack deploy -c "$SCRIPT_DIR/docker-compose.yml" mc
|
||||
@@ -0,0 +1,140 @@
|
||||
version: '3.8'
|
||||
|
||||
services:
|
||||
bedrock:
|
||||
image: itzg/minecraft-bedrock-server
|
||||
environment:
|
||||
# docker image properties
|
||||
# - UID=485
|
||||
# - GID=485
|
||||
- TZ=Europe/Stockholm
|
||||
- EULA=TRUE
|
||||
- VERSION=PREVIEW
|
||||
# Minecraft server.properties parameters
|
||||
# https://minecraft.fandom.com/wiki/Server.properties#Bedrock_Edition_3
|
||||
- GAMEMODE=survival
|
||||
- DIFFICULTY=normal
|
||||
- "SERVER_NAME=Niefelheim Bedrock server"
|
||||
- SERVER_PORT=19132
|
||||
- SERVER_PORT_V6=19131
|
||||
- ALLOW_CHEATS=true
|
||||
- ONLINE_MODE=true
|
||||
- LEVEL_NAME=Dungen
|
||||
#- OPS=2533274968313137
|
||||
- OPS=2533274968313137,2535421315133378,2535433533727392
|
||||
ports:
|
||||
- target: 19132
|
||||
published: 19132
|
||||
protocol: udp
|
||||
mode: host
|
||||
networks:
|
||||
- host
|
||||
volumes:
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
- server-data:/data
|
||||
stdin_open: true
|
||||
tty: true
|
||||
deploy:
|
||||
placement:
|
||||
constraints: [node.labels.Bedrock == true ]
|
||||
|
||||
backup:
|
||||
image: alpinelinux/docker-cli
|
||||
entrypoint: "sh -c"
|
||||
command: |
|
||||
'
|
||||
DATE_FMT="%Y-%m-%d_%H-%M-%S"
|
||||
|
||||
echo "Stopping bedrock service..."
|
||||
docker service scale $$SERVICE_NAME=0 > /dev/null
|
||||
|
||||
for world_dir in /opt/server/worlds/*; do
|
||||
world_name=$$(basename "$$world_dir")
|
||||
now=$$(date +$$DATE_FMT)
|
||||
target="/opt/backups/$$world_name-$$now.tar.gz"
|
||||
echo "Backing up '$$world_name' to $$target..."
|
||||
|
||||
tar -cpzf "$$target" -C "$$world_dir" .
|
||||
|
||||
echo "Cleaning up old versions of '$$world_name'..."
|
||||
find /opt/backups -name "$$world_name-*.tar.gz" -type f -mtime +14 -print -delete
|
||||
done
|
||||
|
||||
echo "Starting bedrock service..."
|
||||
docker service scale $$SERVICE_NAME=1 > /dev/null
|
||||
'
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
- server-data:/opt/server
|
||||
- backups-data:/opt/backups
|
||||
environment:
|
||||
# assumes this is deployed to a stack named "mc"
|
||||
- SERVICE_NAME=mc_bedrock
|
||||
deploy:
|
||||
placement:
|
||||
constraints:
|
||||
- node.role == manager
|
||||
restart_policy:
|
||||
condition: none
|
||||
replicas: 0 # none by default; created when cron hits
|
||||
labels:
|
||||
# backup and restart daily at 6am
|
||||
- swarm.cronjob.enable=true
|
||||
- swarm.cronjob.schedule=0 6 * * *
|
||||
|
||||
update:
|
||||
image: alpinelinux/docker-cli
|
||||
entrypoint: "sh -c"
|
||||
command: |
|
||||
'
|
||||
# force service update, which causes restart
|
||||
docker service update $$SERVICE_NAME --force
|
||||
'
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
environment:
|
||||
# assumes this is deployed to a stack named "mc"
|
||||
- SERVICE_NAME=mc_bedrock
|
||||
deploy:
|
||||
placement:
|
||||
constraints:
|
||||
- node.role == manager
|
||||
restart_policy:
|
||||
condition: none
|
||||
replicas: 0 # none by fedault; created when cron hits
|
||||
labels:
|
||||
# restart daily at 6am to get latest MC version
|
||||
- swarm.cronjob.enable=false
|
||||
- swarm.cronjob.schedule=0 6 * * *
|
||||
|
||||
cron:
|
||||
image: crazymax/swarm-cronjob:1.13.0
|
||||
environment:
|
||||
- TZ=Europe/Stockholm
|
||||
- LOG_LEVEL=info
|
||||
- LOG_JSON=false
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
deploy:
|
||||
placement:
|
||||
constraints:
|
||||
- node.role == manager
|
||||
replicas: 0 # disabled; already running in lab stack
|
||||
|
||||
networks:
|
||||
host:
|
||||
external: true
|
||||
|
||||
volumes:
|
||||
server-data:
|
||||
driver: local
|
||||
driver_opts:
|
||||
type: 'none'
|
||||
o: 'bind'
|
||||
device: '/data/bedrock/server'
|
||||
backups-data:
|
||||
driver: local
|
||||
driver_opts:
|
||||
type: 'none'
|
||||
o: 'bind'
|
||||
device: '/data/backup/bedrock'
|
||||
Executable
+3
@@ -0,0 +1,3 @@
|
||||
#!/bin/bash
|
||||
|
||||
docker exec $(docker ps --filter name=mc_bedrock* --quiet) /usr/local/bin/send-command $1
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"$schema": "https://docs.renovatebot.com/renovate-schema.json";
|
||||
"extends": [
|
||||
"config:base"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
#!/bin/sh
|
||||
|
||||
SCRIPT_DIR=$(dirname -- "$0")
|
||||
|
||||
docker stack rm mc
|
||||
docker volume rm mc_server-data
|
||||
docker volume rm mc_backups-data
|
||||
Reference in New Issue
Block a user