new changes
This commit is contained in:
31
scripts/docker-compose.sh
Normal file
31
scripts/docker-compose.sh
Normal file
@@ -0,0 +1,31 @@
|
||||
#!/usr/bin/env bash
|
||||
# Run docker compose for this repo. After `usermod -aG docker`, the current shell
|
||||
# may still lack docker group until logout; use `sg docker` so compose works immediately.
|
||||
set -euo pipefail
|
||||
|
||||
ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
||||
cd "$ROOT" || exit 1
|
||||
|
||||
if [[ ! -f .env ]] && [[ -f .env.example ]]; then
|
||||
cp -n .env.example .env || true
|
||||
fi
|
||||
|
||||
run_docker_compose() {
|
||||
local -a compose_args=(--env-file .env -f docker-compose.yakpanel.yml)
|
||||
if docker info >/dev/null 2>&1; then
|
||||
docker compose "${compose_args[@]}" "$@"
|
||||
return
|
||||
fi
|
||||
local cmd
|
||||
cmd="cd $(printf '%q' "$ROOT") && docker compose"
|
||||
for a in "${compose_args[@]}" "$@"; do
|
||||
cmd+=" $(printf '%q' "$a")"
|
||||
done
|
||||
if command -v sg >/dev/null 2>&1; then
|
||||
sg docker -c "$cmd"
|
||||
return
|
||||
fi
|
||||
sudo docker compose "${compose_args[@]}" "$@"
|
||||
}
|
||||
|
||||
run_docker_compose "$@"
|
||||
Reference in New Issue
Block a user