1
0

work setup sync

This commit is contained in:
2026-04-09 18:41:44 +02:00
parent eb8c484c45
commit 414602c66a
7 changed files with 131 additions and 44 deletions

70
scripts/hcf/podman_setup Executable file
View File

@@ -0,0 +1,70 @@
#!/bin/bash
# Script to configure podman for the local environment
#
# ./podman_setup
set -euo pipefail
if ! command -v podman &>/dev/null; then
echo "Error: podman is not installed"
exit 1
fi
case "$(uname -s)" in
Darwin*) memory=12288 ;;
Linux*) memory=8192 ;;
*)
echo "Unsupported platform"
exit 1
;;
esac
if [[ "$(uname -s)" == Darwin* ]]; then
helper_plist="/Library/LaunchDaemons/com.github.containers.podman.helper-$(whoami).plist"
if [[ ! -f "$helper_plist" ]]; then
echo "Installing podman-mac-helper (requires sudo)..."
sudo podman-mac-helper install
fi
fi
if ! podman machine inspect &>/dev/null; then
echo "Initializing podman machine with 4 CPUs and $((memory / 1024))GB RAM..."
podman machine init --rootful --cpus 4 --memory "$memory"
fi
if [[ "$(uname -s)" == Darwin* ]]; then
rosetta=$(podman machine inspect --format '{{.Rosetta}}')
if [[ "$rosetta" != "true" ]]; then
echo "Warning: Rosetta translation is not enabled on this podman machine."
fi
fi
state=$(podman machine inspect --format '{{.State}}')
case "$state" in
running)
echo "Podman machine is already running."
;;
stopped)
echo "Starting podman machine..."
podman machine start
;;
*)
echo "Error: podman machine is in unexpected state: $state"
exit 1
;;
esac
case "$(uname -s)" in
Darwin*) resolved_ip=$(dscacheutil -q host -a name host.docker.internal 2>/dev/null | awk '/^ip_address:/{print $2; exit}') ;;
*) resolved_ip=$(getent hosts host.docker.internal 2>/dev/null | awk '{print $1}') ;;
esac
if [[ -z "$resolved_ip" ]] || ! echo "$resolved_ip" | grep -qE '^(127\.|::1$)'; then
echo "Adding host.docker.internal to /etc/hosts (requires sudo)..."
echo "127.0.0.1 host.docker.internal" | sudo tee -a /etc/hosts >/dev/null
fi
if [[ ! -e /usr/local/bin/docker ]]; then
echo "Creating docker symlink to avoid issues with projects that do not inherit aliases (requires sudo)..."
sudo ln -s "$(command -v podman)" /usr/local/bin/docker
fi