Fix source deploy permissions repair
This commit is contained in:
@@ -49,6 +49,46 @@ require_command docker
|
||||
require_command rsync
|
||||
require_command python3
|
||||
|
||||
repair_deploy_permissions() {
|
||||
if [[ ! -d "$DEPLOY_DIR" ]]; then
|
||||
return
|
||||
fi
|
||||
|
||||
local target_uid
|
||||
local target_gid
|
||||
target_uid="$(id -u)"
|
||||
target_gid="$(id -g)"
|
||||
|
||||
docker run --rm \
|
||||
-e TARGET_UID="$target_uid" \
|
||||
-e TARGET_GID="$target_gid" \
|
||||
-v "$DEPLOY_DIR:/deploy" \
|
||||
alpine:3.21 \
|
||||
sh -lc '
|
||||
set -eu
|
||||
prune_expr="
|
||||
-path /deploy/.env.production -o
|
||||
-path /deploy/.env.production.* -o
|
||||
-path /deploy/.data -o -path /deploy/.data/* -o
|
||||
-path /deploy/.data_local -o -path /deploy/.data_local/* -o
|
||||
-path /deploy/.data_gate3 -o -path /deploy/.data_gate3/* -o
|
||||
-path /deploy/.data_gate4 -o -path /deploy/.data_gate4/* -o
|
||||
-path /deploy/.data_uat_dry_run -o -path /deploy/.data_uat_dry_run/* -o
|
||||
-path /deploy/.data_uat_preflight -o -path /deploy/.data_uat_preflight/* -o
|
||||
-path /deploy/.models -o -path /deploy/.models/* -o
|
||||
-path /deploy/.asterisk_assets -o -path /deploy/.asterisk_assets/* -o
|
||||
-path /deploy/.db_backups -o -path /deploy/.db_backups/* -o
|
||||
-path /deploy/.deploy_backups -o -path /deploy/.deploy_backups/*
|
||||
"
|
||||
# shellcheck disable=SC2086
|
||||
find /deploy \( $prune_expr \) -prune -o -exec chown "$TARGET_UID:$TARGET_GID" {} +
|
||||
# shellcheck disable=SC2086
|
||||
find /deploy \( $prune_expr \) -prune -o -type d -exec chmod u+rwx {} +
|
||||
# shellcheck disable=SC2086
|
||||
find /deploy \( $prune_expr \) -prune -o -type f -exec chmod u+rw {} +
|
||||
'
|
||||
}
|
||||
|
||||
if docker compose version >/dev/null 2>&1; then
|
||||
COMPOSE_CMD=(docker compose)
|
||||
elif command -v docker-compose >/dev/null 2>&1; then
|
||||
@@ -69,6 +109,7 @@ if ! docker info >/dev/null 2>&1; then
|
||||
fi
|
||||
|
||||
install -d "$DEPLOY_DIR"
|
||||
repair_deploy_permissions
|
||||
cd "$DEPLOY_DIR"
|
||||
|
||||
if [[ "$CI_PROJECT_DIR" != "$DEPLOY_DIR" ]]; then
|
||||
|
||||
Reference in New Issue
Block a user