84 lines
1.4 KiB
HCL
84 lines
1.4 KiB
HCL
job "minecraft" {
|
|
type = "batch"
|
|
|
|
parameterized {
|
|
meta_required = ["mode", "image"]
|
|
meta_optional = ["plugins"]
|
|
}
|
|
|
|
meta {
|
|
plugins = ""
|
|
}
|
|
|
|
group "lobby" {
|
|
count = 1
|
|
|
|
network {
|
|
mode = "bridge"
|
|
port "minecraft" {
|
|
to = 25565
|
|
}
|
|
dns {
|
|
servers = ["172.17.0.1"]
|
|
}
|
|
}
|
|
|
|
service {
|
|
name = "minecraft"
|
|
port = "minecraft"
|
|
address_mode = "alloc"
|
|
meta {
|
|
mode = "${NOMAD_META_MODE}"
|
|
}
|
|
check {
|
|
type = "tcp"
|
|
interval = "5s"
|
|
timeout = "1s"
|
|
}
|
|
}
|
|
|
|
task "download-plugins" {
|
|
driver = "docker"
|
|
|
|
lifecycle {
|
|
hook = "prestart"
|
|
sidecar = false
|
|
}
|
|
|
|
config {
|
|
image = "busybox"
|
|
command = "sh"
|
|
volumes = ["../alloc/data:/mnt"]
|
|
args = [
|
|
"-cxe",
|
|
<<-EOF
|
|
set -eu
|
|
mkdir /mnt/plugins
|
|
wget -P /mnt/plugins ${NOMAD_META_PLUGINS}
|
|
EOF
|
|
]
|
|
}
|
|
}
|
|
|
|
task "run" {
|
|
driver = "docker"
|
|
|
|
config {
|
|
image = "${NOMAD_META_IMAGE}"
|
|
force_pull = true
|
|
ports = ["minecraft"]
|
|
volumes = ["../alloc/data:/mnt"]
|
|
}
|
|
|
|
env {
|
|
HOST_POSTGRES = "jdbc:postgresql://postgres.service.consul/scrow"
|
|
HOST_NATS = "nats://nats.service.consul"
|
|
}
|
|
|
|
resources {
|
|
cpu = 1000
|
|
memory = 2048
|
|
}
|
|
}
|
|
}
|
|
}
|