Files
kontor/script/setup
T
2026-04-18 00:29:25 +02:00

257 lines
7.6 KiB
Bash
Executable File

#!/bin/sh
# script/setup: Set up container for the first time after cloning
set -e
cd "$(dirname "$0")/.."
script/bootstrap
#script/cibuild
echo "==> Setting up pod kontor"
if podman pod exists kontor; then
echo " => pod kontor exists"
if podman pod ps --filter "name=kontor" --filter "status=running"; then
echo " => pod kontor is running"
else
podman pod start kontor
fi
else
podman pod create --name kontor \
--infra \
-p 5432:5432 \
-p 8100:8100 \
-p 8200:8200 \
-p 8300:8300 \
-p 8400:8400 \
-p 8500:8500 \
-p 8600:8600 \
-p 8700:80 \
-p 8800:8800 \
-p 8900:8080 \
-p 61616:61616 \
-p 8161:8161 \
-p 5672:5672 \
--network bridge
fi
echo "==> Setting up volume kontor-db"
if podman volume exists kontor-db; then
echo " => volume kontor-db exists"
else
podman volume create kontor-db
fi
echo "==> Setting up volume activemq-data"
if podman volume exists activemq-data; then
echo " => volume kontor-db exists"
else
podman volume create activemq-data
fi
echo "==> Setting up container postgres"
if podman container exists postgres; then
if podman ps -q --filter "name=postgres"; then
echo " => postgres is running"
fi
else
podman run -d --replace --pod kontor --name postgres \
-e POSTGRES_PASSWORD=kontor \
-e POSTGRES_DB=kontor \
-e POSTGRES_USER=kontor \
-v kontor-db:/var/lib/postgresql/data \
--health-cmd='pg_isready -U kontor || exit 1' \
--health-interval=1s \
--health-timeout=5s \
--health-retries=10 \
docker.io/library/postgres:17
fi
echo "==> Setting up container adminer"
if podman container exists adminer; then
if podman ps -q --filter "name=adminer"; then
echo " => adminer is running"
fi
else
podman run -d --replace --pod kontor --name adminer docker.io/library/adminer
fi
echo "==> Setting up container activemq"
if podman container exists activemq; then
if podman ps -q --filter "name=activemq"; then
echo " => adminer is running"
fi
else
podman run -d --replace --pod kontor --name activemq \
-v activemq-data:/var/lib/artemis-instance \
docker.io/apache/activemq-artemis:latest-alpine
fi
echo "==> Setting up container kontor-spring"
if podman image exists localhost/kontor-spring:0.3.0; then
echo " => Image localhost/kontor-spring:0.3.0 available"
fi
if podman container exists kontor-spring; then
if podman ps -q --filter "name=kontor-spring"; then
echo " => kontor-spring is running"
fi
else
podman run -d \
--replace \
--pod kontor \
--name kontor-spring \
--label "io.containers.autoupdate=local" \
--label "PODMAN_SYSTEMD_UNIT=container-kontor-spring.service" \
localhost/kontor-spring:0.3.0
fi
echo "==> Setting up container kontor-api"
if podman image exists localhost/kontor-api:0.3.0; then
echo " => Image localhost/kontor-api:0.3.0 available"
fi
if podman container exists kontor-api; then
if podman ps -q --filter "name=kontor-api"; then
echo " => kontor-api is running"
fi
else
podman run -d \
--replace \
--pod kontor \
--name kontor-api \
--label "io.containers.autoupdate=local" \
--label "PODMAN_SYSTEMD_UNIT=container-kontor-api.service" \
--health-cmd='curl -f http://kontor-api:8200/health || exit 1' \
--health-interval=1s \
--health-timeout=5s \
--health-retries=10 \
localhost/kontor-api:0.3.0
fi
echo "==> Setting up container kontor-quarkus"
if podman image exists localhost/kontor-quarkus:0.3.0; then
echo " => Image localhost/kontor-quarkus:0.3.0 available"
fi
if podman container exists kontor-quarkus; then
if podman ps -q --filter "name=kontor-quarkus"; then
echo " => kontor-quarkus is running"
fi
else
podman run -d \
--replace \
--pod kontor \
--name kontor-quarkus \
--label "io.containers.autoupdate=local" \
--label "PODMAN_SYSTEMD_UNIT=container-kontor-quarkus.service" \
--health-cmd='curl -f http://kontor-quarkus:8300/q/health || exit 1' \
--health-interval=1s \
--health-timeout=5s \
--health-retries=10 \
localhost/kontor-quarkus:0.3.0
fi
echo "==> Setting up container kontor-echo"
if podman image exists localhost/kontor-echo:0.3.0; then
echo " => Image localhost/kontor-echo:0.3.0 available"
fi
if podman container exists kontor-echo; then
if podman ps -q --filter "name=kontor-echo"; then
echo " => kontor-echo is running"
fi
else
podman run -d \
--replace \
--pod kontor \
--name kontor-echo \
--label "io.containers.autoupdate=local" \
--label "PODMAN_SYSTEMD_UNIT=container-kontor-echo.service" \
--health-cmd='curl -f http://kontor-echo:8400/health || exit 1' \
--health-interval=1s \
--health-timeout=5s \
--health-retries=10 \
localhost/kontor-echo:0.3.0
fi
echo "==> Setting up container kontor-fiber"
if podman image exists localhost/kontor-fiber:0.3.0; then
echo " => Image localhost/kontor-fiber:0.3.0 available"
fi
if podman container exists kontor-fiber; then
if podman ps -q --filter "name=kontor-fiber"; then
echo " => kontor-fiber is running"
fi
else
podman run -d \
--replace \
--pod kontor \
--name kontor-fiber \
--label "io.containers.autoupdate=local" \
--label "PODMAN_SYSTEMD_UNIT=container-kontor-fiber.service" \
--health-cmd='curl -f http://kontor-echo:8500/health || exit 1' \
--health-interval=1s \
--health-timeout=5s \
--health-retries=10 \
localhost/kontor-fiber:0.3.0
fi
echo "==> Setting up container kontor-javalin"
if podman image exists localhost/kontor-javalin:0.3.0; then
echo " => Image localhost/kontor-javalin:0.3.0 available"
fi
if podman container exists kontor-javalin; then
if podman ps -q --filter "name=kontor-javalin"; then
echo " => kontor-javalin is running"
fi
else
podman run -d \
--replace \
--pod kontor \
--name kontor-javalin \
--label "io.containers.autoupdate=local" \
--label "PODMAN_SYSTEMD_UNIT=container-kontor-javalin.service" \
--health-cmd='curl -f http://kontor-echo:8600/health || exit 1' \
--health-interval=1s \
--health-timeout=5s \
--health-retries=10 \
localhost/kontor-javalin:0.3.0
fi
echo "==> Setting up container kontor-vue"
if podman image exists localhost/kontor-vue:0.3.0; then
echo " => Image localhost/kontor-vue:0.3.0 available"
fi
if podman container exists kontor-vue; then
if podman ps -q --filter "name=kontor-vue"; then
echo " => kontor-vue is running"
fi
else
podman run -d \
--replace \
--pod kontor \
--name kontor-vue \
--label "io.containers.autoupdate=local" \
--label "PODMAN_SYSTEMD_UNIT=container-kontor-vue.service" \
localhost/kontor-vue:0.3.0
fi
echo "==> Setting up container kontor-angular"
if podman image exists localhost/kontor-angular:0.3.0; then
echo " => Image localhost/kontor-angular:0.3.0 available"
fi
if podman container exists kontor-angular; then
if podman ps -q --filter "name=kontor-angular"; then
echo " => kontor-angular is running"
fi
else
podman run -d \
--replace \
--pod kontor \
--name kontor-angular \
--label "io.containers.autoupdate=local" \
--label "PODMAN_SYSTEMD_UNIT=container-kontor-angular.service" \
localhost/kontor-angular:0.3.0
fi