mirror of
https://github.com/tiennm99/coolify.git
synced 2026-10-14 08:18:08 +00:00
feat(container): support comma-separated roles
Allow s6 services to start for specific roles like horizon, scheduler, nightwatch, and flux while keeping all as the default.
This commit is contained in:
1 parent
dcd325dc44
commit
762daf83a1
14 files changed
+163
-108
No files matched your search
@@ -2,19 +2,13 @@
|
||||
|
||||
cd /var/www/html
|
||||
|
||||
role="${COOLIFY_CONTAINER_ROLE:-}"
|
||||
if [ -z "$role" ]; then
|
||||
role="$(grep -E '^COOLIFY_CONTAINER_ROLE=' .env 2>/dev/null | tail -n1 | cut -d= -f2- | tr -d '"' | tr -d "'")"
|
||||
fi
|
||||
role="${role:-all}"
|
||||
. /etc/s6-overlay/scripts/container-role
|
||||
role="$(coolify_container_role_value)"
|
||||
|
||||
case "$role" in
|
||||
all|flux) ;;
|
||||
*)
|
||||
echo " INFO Flux is disabled for role '$role', sleeping."
|
||||
exec sleep infinity
|
||||
;;
|
||||
esac
|
||||
if ! coolify_container_has_role flux; then
|
||||
echo " INFO Flux is disabled for role '$role', sleeping."
|
||||
exec sleep infinity
|
||||
fi
|
||||
|
||||
if grep -qE '^COOLIFY_FLUX_ENABLED=false' .env 2>/dev/null || [ "${COOLIFY_FLUX_ENABLED:-}" = "false" ]; then
|
||||
echo " INFO Flux is disabled, sleeping."
|
||||
|
||||
@@ -2,19 +2,13 @@
|
||||
|
||||
cd /var/www/html
|
||||
|
||||
role="${COOLIFY_CONTAINER_ROLE:-}"
|
||||
if [ -z "$role" ]; then
|
||||
role="$(grep -E '^COOLIFY_CONTAINER_ROLE=' .env 2>/dev/null | tail -n1 | cut -d= -f2- | tr -d '"' | tr -d "'")"
|
||||
fi
|
||||
role="${role:-all}"
|
||||
. /etc/s6-overlay/scripts/container-role
|
||||
role="$(coolify_container_role_value)"
|
||||
|
||||
case "$role" in
|
||||
all|worker) ;;
|
||||
*)
|
||||
echo " INFO Horizon is disabled for role '$role', sleeping."
|
||||
exec sleep infinity
|
||||
;;
|
||||
esac
|
||||
if ! coolify_container_has_role worker && ! coolify_container_has_role horizon; then
|
||||
echo " INFO Horizon is disabled for role '$role', sleeping."
|
||||
exec sleep infinity
|
||||
fi
|
||||
|
||||
if grep -qE '^HORIZON_ENABLED=false' .env 2>/dev/null; then
|
||||
echo " INFO Horizon is disabled, sleeping."
|
||||
|
||||
@@ -2,19 +2,13 @@
|
||||
|
||||
cd /var/www/html
|
||||
|
||||
role="${COOLIFY_CONTAINER_ROLE:-}"
|
||||
if [ -z "$role" ]; then
|
||||
role="$(grep -E '^COOLIFY_CONTAINER_ROLE=' .env 2>/dev/null | tail -n1 | cut -d= -f2- | tr -d '"' | tr -d "'")"
|
||||
fi
|
||||
role="${role:-all}"
|
||||
. /etc/s6-overlay/scripts/container-role
|
||||
role="$(coolify_container_role_value)"
|
||||
|
||||
case "$role" in
|
||||
all|worker) ;;
|
||||
*)
|
||||
echo " INFO Nightwatch is disabled for role '$role', sleeping."
|
||||
exec sleep infinity
|
||||
;;
|
||||
esac
|
||||
if ! coolify_container_has_role worker && ! coolify_container_has_role nightwatch && ! coolify_container_has_role nightwatch-agent; then
|
||||
echo " INFO Nightwatch is disabled for role '$role', sleeping."
|
||||
exec sleep infinity
|
||||
fi
|
||||
|
||||
if grep -qE '^NIGHTWATCH_ENABLED=true' .env 2>/dev/null; then
|
||||
echo " INFO Nightwatch is enabled, starting..."
|
||||
|
||||
@@ -2,19 +2,13 @@
|
||||
|
||||
cd /var/www/html
|
||||
|
||||
role="${COOLIFY_CONTAINER_ROLE:-}"
|
||||
if [ -z "$role" ]; then
|
||||
role="$(grep -E '^COOLIFY_CONTAINER_ROLE=' .env 2>/dev/null | tail -n1 | cut -d= -f2- | tr -d '"' | tr -d "'")"
|
||||
fi
|
||||
role="${role:-all}"
|
||||
. /etc/s6-overlay/scripts/container-role
|
||||
role="$(coolify_container_role_value)"
|
||||
|
||||
case "$role" in
|
||||
all|worker) ;;
|
||||
*)
|
||||
echo " INFO Scheduler worker is disabled for role '$role', sleeping."
|
||||
exec sleep infinity
|
||||
;;
|
||||
esac
|
||||
if ! coolify_container_has_role worker && ! coolify_container_has_role scheduler && ! coolify_container_has_role scheduler-worker; then
|
||||
echo " INFO Scheduler worker is disabled for role '$role', sleeping."
|
||||
exec sleep infinity
|
||||
fi
|
||||
|
||||
if grep -qE '^SCHEDULER_ENABLED=false' .env 2>/dev/null; then
|
||||
echo " INFO Scheduler is disabled, sleeping."
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
#!/bin/sh
|
||||
|
||||
coolify_container_role_value() {
|
||||
role="${COOLIFY_CONTAINER_ROLE:-}"
|
||||
|
||||
if [ -z "$role" ]; then
|
||||
role="$(grep -E '^COOLIFY_CONTAINER_ROLE=' .env 2>/dev/null | tail -n1 | cut -d= -f2- | tr -d '"' | tr -d "'")"
|
||||
fi
|
||||
|
||||
printf '%s\n' "${role:-all}"
|
||||
}
|
||||
|
||||
coolify_container_has_role() {
|
||||
wanted_role="$1"
|
||||
roles="$(coolify_container_role_value | tr '[:upper:]' '[:lower:]' | tr ',' ' ')"
|
||||
|
||||
for role in $roles; do
|
||||
case "$role" in
|
||||
all|"$wanted_role")
|
||||
return 0
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
return 1
|
||||
}
|
||||
Reference in new issue
Block a user