From 421b37f3e8736557883f96f4a46245930a8b2376 Mon Sep 17 00:00:00 2001 From: sindoring Date: Mon, 9 Mar 2026 21:01:33 +0400 Subject: [PATCH] =?UTF-8?q?=D1=84=D0=B8=D0=BA=D1=81=20=D0=B4=D0=BB=D1=8F?= =?UTF-8?q?=20=D1=81=D1=82=D0=B0=D1=80=D1=82=20=D1=81=D0=BA=D1=80=D0=B8?= =?UTF-8?q?=D0=BF=D1=82=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- start-server.sh | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/start-server.sh b/start-server.sh index ab56c14..980842c 100644 --- a/start-server.sh +++ b/start-server.sh @@ -114,6 +114,34 @@ require_docker() { fi } +ensure_host_permissions() { + local target_uid="${DOCKER_USER_ID:-1000}" + local target_gid="${DOCKER_GROUP_ID:-1000}" + local dirs=( + "$ROOT_DIR/env/dist/etc" + "$ROOT_DIR/env/dist/logs" + "$ROOT_DIR/env/dist/temp" + ) + + mkdir -p "${dirs[@]}" + + if [[ "$(id -u)" -eq 0 ]]; then + chown -R "${target_uid}:${target_gid}" "${dirs[@]}" + return 0 + fi + + local dir + for dir in "${dirs[@]}"; do + if [[ ! -w "$dir" ]]; then + printf 'host directory is not writable: %s\n' "$dir" >&2 + printf 'Run:\n sudo chown -R %s:%s %q %q %q\n' \ + "$target_uid" "$target_gid" \ + "${dirs[0]}" "${dirs[1]}" "${dirs[2]}" >&2 + exit 1 + fi + done +} + while (($#)); do case "$1" in --no-build) @@ -142,6 +170,9 @@ require_docker log "applying module configuration" bash "$ROOT_DIR/setup-modules.sh" +log "ensuring host directory permissions" +ensure_host_permissions + log "starting database" if [[ -n "$BUILD_FLAG" ]]; then docker compose up -d --build ac-database