1
0
forked from wrenn/wrenn

feat: add env expansion, sandbox env fetching, and configurable

healthchecks

Fix ENV instructions to expand $VAR references at set time using the
current env state, preventing self-referencing values like
PATH=/opt/venv/bin:$PATH from producing recursive expansions. Remove
expandEnv from shellPrefix to avoid double expansion.

Fetch sandbox environment variables via `env` before recipe execution
so ENV steps resolve against actual runtime values from the base
template image.

Replace hardcoded healthcheck timing with a Dockerfile-like flag parser
supporting --interval, --timeout, --start-period, and --retries. Add
start-period grace window and bounded retry counting to
waitForHealthcheck.

Add python-interpreter-v0-beta recipe and healthcheck files.
This commit is contained in:
Tasnim Kabir Sadik
2026-04-07 01:15:43 +06:00
parent ab38c8372c
commit 4f340b8847
10 changed files with 537 additions and 17 deletions

View File

@ -20,6 +20,34 @@ echo "+cpu +memory +io" > /sys/fs/cgroup/cgroup.subtree_control 2>/dev/null || t
# Set hostname
hostname sandbox
# Configure networking from kernel cmdline (ip=client::gw:mask:host:iface:autoconf).
# if command -v ip >/dev/null 2>&1; then
# iparg=$(cat /proc/cmdline | tr ' ' '\n' | sed -n 's/^ip=//p')
# if [ -n "$iparg" ]; then
# client=$(echo "$iparg" | cut -d: -f1)
# gw=$(echo "$iparg" | cut -d: -f2)
# mask=$(echo "$iparg" | cut -d: -f3)
# iface=$(echo "$iparg" | cut -d: -f5)
# [ -z "$iface" ] && iface=eth0
# if [ -n "$client" ]; then
# ip addr add "$client/${mask:-30}" dev "$iface" 2>/dev/null || true
# ip link set "$iface" up 2>/dev/null || true
# if [ -n "$gw" ]; then
# ip route add default via "$gw" 2>/dev/null || true
# fi
# fi
# fi
# fi
#
#
if ! ip addr show eth0 2>/dev/null | grep -q "169.254.0.21"; then
ip link set lo up
ip link set eth0 up
ip addr add 169.254.0.21/30 dev eth0
ip route add default via 169.254.0.22
fi
# Configure DNS resolver.
echo "nameserver 8.8.8.8" > /etc/resolv.conf
echo "nameserver 8.8.4.4" >> /etc/resolv.conf