Database fix
All checks were successful
Deploy Dolibarr / deploy (push) Successful in 3m38s

This commit is contained in:
Henrik Jess Nielsen
2026-05-18 23:58:40 +02:00
parent f841332eeb
commit d10f0d47b2
4 changed files with 109 additions and 69 deletions

View File

@@ -18,25 +18,26 @@ jobs:
- name: Checkout code
uses: actions/checkout@v4
- name: Validate Nomad job
run: nomad job validate nomad-job.hcl
- name: Validate job specs
run: |
nomad job validate portaldb.nomad
nomad job validate nomad-job.hcl
- name: Deploy to Nomad
- name: Deploy portaldb (MariaDB)
run: nomad job run portaldb.nomad
- name: Deploy Dolibarr
run: nomad job run nomad-job.hcl
- name: Check deployment status
run: |
echo "=== Job Status ==="
echo "=== portaldb ==="
nomad job status portaldb
echo "=== dolibarr ==="
nomad job status dolibarr
echo "=== Allocations ==="
nomad job allocs dolibarr
echo "=== Logs ==="
for alloc in $(nomad job allocs dolibarr -short | tail -n +2 | awk '{print $1}'); do
echo "--- app logs ($alloc) ---"
nomad alloc logs $alloc app || true
done
- name: Done
run: echo "Dolibarr deployed — https://portal.i80.dk"
run: |
echo "portaldb → portaldb.i80.dk:3306"
echo "dolibarr → https://portal.i80.dk"

View File

@@ -1,27 +1,29 @@
NOMAD_ADDR ?= https://nomad.i80.dk:4646
JOB := nomad-job.hcl
.PHONY: help secrets plan deploy status logs stop
.PHONY: help plan deploy status logs stop
help:
@echo "Dolibarr på portal.i80.dk (kører på autobox.i80.dk)"
@echo "portal.i80.dk / portaldb.i80.dk"
@echo ""
@echo " make plan — valider job spec"
@echo " make deploy — deploy/opdater Dolibarr"
@echo " make status — vis job status"
@echo " make logs — follow app logs"
@echo " make stop — stop job"
@echo " make plan — valider begge job specs"
@echo " make deploy — deploy portaldb + dolibarr"
@echo " make status — vis status for begge jobs"
@echo " make logs — follow dolibarr app logs"
@echo " make stop — stop begge jobs"
@echo ""
@echo "Secrets sættes via SSH på autobox:"
@echo " ssh autobox.i80.dk 'consul kv put dolibarr/db_password ...'"
plan:
NOMAD_ADDR=$(NOMAD_ADDR) nomad job plan $(JOB)
NOMAD_ADDR=$(NOMAD_ADDR) nomad job validate portaldb.nomad
NOMAD_ADDR=$(NOMAD_ADDR) nomad job validate nomad-job.hcl
deploy:
NOMAD_ADDR=$(NOMAD_ADDR) nomad job run $(JOB)
NOMAD_ADDR=$(NOMAD_ADDR) nomad job run portaldb.nomad
NOMAD_ADDR=$(NOMAD_ADDR) nomad job run nomad-job.hcl
status:
NOMAD_ADDR=$(NOMAD_ADDR) nomad job status portaldb
NOMAD_ADDR=$(NOMAD_ADDR) nomad job status dolibarr
logs:
@@ -29,3 +31,4 @@ logs:
stop:
NOMAD_ADDR=$(NOMAD_ADDR) nomad job stop dolibarr
NOMAD_ADDR=$(NOMAD_ADDR) nomad job stop portaldb

View File

@@ -11,60 +11,17 @@ job "dolibarr" {
}
network {
mode = "bridge"
port "http" {
to = 80
static = 80
}
}
volume "dolibarr-db" {
type = "host"
source = "dolibarr-db"
read_only = false
}
volume "dolibarr-documents" {
type = "host"
source = "dolibarr-documents"
read_only = false
}
task "mariadb" {
driver = "docker"
config {
image = "mariadb:10.11"
}
volume_mount {
volume = "dolibarr-db"
destination = "/var/lib/mysql"
}
template {
data = <<EOH
MARIADB_ROOT_PASSWORD="{{ key "dolibarr/db_root_password" }}"
MARIADB_DATABASE="dolibarr"
MARIADB_USER="dolibarr"
MARIADB_PASSWORD="{{ key "dolibarr/db_password" }}"
EOH
destination = "secrets/mariadb.env"
env = true
}
resources {
cpu = 256
memory = 512
}
restart {
attempts = 5
delay = "15s"
interval = "2m"
mode = "fail"
}
}
task "app" {
driver = "docker"
@@ -88,7 +45,7 @@ EOH
}
env {
DOLI_DB_HOST = "127.0.0.1"
DOLI_DB_HOST = "portaldb.service.consul"
DOLI_DB_PORT = "3306"
DOLI_DB_NAME = "dolibarr"
DOLI_DB_USER = "dolibarr"

79
portaldb.nomad Normal file
View File

@@ -0,0 +1,79 @@
job "portaldb" {
datacenters = ["dc1"]
type = "service"
group "db" {
count = 1
constraint {
attribute = "${node.unique.name}"
value = "autobox.i80.dk"
}
network {
port "mysql" {
static = 3306
}
}
volume "dolibarr-db" {
type = "host"
source = "dolibarr-db"
read_only = false
}
task "mariadb" {
driver = "docker"
config {
image = "mariadb:10.11"
ports = ["mysql"]
}
volume_mount {
volume = "dolibarr-db"
destination = "/var/lib/mysql"
}
template {
data = <<EOH
MARIADB_ROOT_PASSWORD="{{ key "dolibarr/db_root_password" }}"
MARIADB_DATABASE="dolibarr"
MARIADB_USER="dolibarr"
MARIADB_PASSWORD="{{ key "dolibarr/db_password" }}"
EOH
destination = "secrets/mariadb.env"
env = true
}
resources {
cpu = 256
memory = 512
}
restart {
attempts = 5
delay = "15s"
interval = "2m"
mode = "fail"
}
service {
name = "portaldb"
port = "mysql"
provider = "consul"
tags = [
"traefik.enable=true",
"traefik.http.routers.portaldb.rule=Host(`portaldb.i80.dk`)",
]
check {
type = "tcp"
interval = "10s"
timeout = "3s"
}
}
}
}
}