65 lines
1.3 KiB
HCL
65 lines
1.3 KiB
HCL
job "hybrid-nfs-app" {
|
||
datacenters = ["dc1"]
|
||
type = "service"
|
||
|
||
# 使用约束条件区分存储类型
|
||
constraint {
|
||
attribute = "${attr.unique.hostname}"
|
||
operator = "regexp"
|
||
value = "semaphore"
|
||
}
|
||
|
||
group "app" {
|
||
count = 1
|
||
|
||
network {
|
||
port "http" {
|
||
static = 8080
|
||
}
|
||
}
|
||
|
||
# 对于本机(semaphore)使用host volume
|
||
volume "local-storage" {
|
||
type = "host"
|
||
read_only = false
|
||
source = "local-fnsync"
|
||
}
|
||
|
||
task "web-app" {
|
||
driver = "exec"
|
||
|
||
config {
|
||
command = "python3"
|
||
args = ["-m", "http.server", "8080", "--directory", "local/fnsync"]
|
||
}
|
||
|
||
template {
|
||
data = <<EOH
|
||
<h1>Hybrid NFS App - Running on {{ env "attr.unique.hostname" }}</h1>
|
||
<p>Storage Type: {{ with eq (env "attr.unique.hostname") "semaphore" }}PVE Mount{{ else }}NFS{{ end }}</p>
|
||
<p>Timestamp: {{ now | date "2006-01-02 15:04:05" }}</p>
|
||
EOH
|
||
destination = "local/fnsync/index.html"
|
||
}
|
||
|
||
resources {
|
||
cpu = 100
|
||
memory = 128
|
||
}
|
||
|
||
service {
|
||
name = "hybrid-nfs-app"
|
||
port = "http"
|
||
|
||
tags = ["hybrid", "nfs", "web"]
|
||
|
||
check {
|
||
type = "http"
|
||
path = "/"
|
||
interval = "10s"
|
||
timeout = "2s"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
} |