29 lines
		
	
	
		
			793 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			29 lines
		
	
	
		
			793 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/usr/bin/env bash
 | |
| # Wrapper to run docker compose with the caller's UID/GID so generated files stay writable.
 | |
| set -euo pipefail
 | |
| 
 | |
| if ! command -v docker >/dev/null 2>&1; then
 | |
|   echo "Error: docker is not installed or not on PATH." >&2
 | |
|   exit 1
 | |
| fi
 | |
| 
 | |
| if docker compose version >/dev/null 2>&1; then
 | |
|   COMPOSE_CMD=(docker compose)
 | |
| elif command -v docker-compose >/dev/null 2>&1; then
 | |
|   COMPOSE_CMD=(docker-compose)
 | |
| else
 | |
|   echo "Error: docker compose plugin or docker-compose binary is required." >&2
 | |
|   exit 1
 | |
| fi
 | |
| 
 | |
| CALLER_UID=$(id -u)
 | |
| CALLER_GID=$(id -g)
 | |
| 
 | |
| SCRIPT_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)
 | |
| 
 | |
| # Run docker compose from the Docker directory so it picks up the bundled yaml.
 | |
| (
 | |
|   cd "${SCRIPT_DIR}"
 | |
|   LOCAL_UID="${CALLER_UID}" LOCAL_GID="${CALLER_GID}" "${COMPOSE_CMD[@]}" "$@"
 | |
| )
 |