infra: container-only workflow (packaging image + scripts); README: add No Host Pollution policy

This commit is contained in:
2025-09-12 14:22:56 -05:00
parent 02057f7815
commit c835a8438b
7 changed files with 109 additions and 0 deletions

10
scripts/packaging-enter.sh Executable file
View File

@@ -0,0 +1,10 @@
#!/usr/bin/env bash
set -euo pipefail
NAME=${PACKAGING_CONTAINER_NAME:-tsys-cloudron-packaging}
if ! docker ps --format '{{.Names}}' | grep -qx "$NAME"; then
scripts/packaging-up.sh >/dev/null
fi
exec docker exec -it "$NAME" bash

15
scripts/packaging-exec.sh Executable file
View File

@@ -0,0 +1,15 @@
#!/usr/bin/env bash
set -euo pipefail
NAME=${PACKAGING_CONTAINER_NAME:-tsys-cloudron-packaging}
if [[ $# -lt 1 ]]; then
echo "Usage: scripts/packaging-exec.sh <command...>" >&2
exit 1
fi
if ! docker ps --format '{{.Names}}' | grep -qx "$NAME"; then
scripts/packaging-up.sh >/dev/null
fi
exec docker exec -it "$NAME" sh -lc "$*"

30
scripts/packaging-up.sh Executable file
View File

@@ -0,0 +1,30 @@
#!/usr/bin/env bash
set -euo pipefail
NAME=${PACKAGING_CONTAINER_NAME:-tsys-cloudron-packaging}
IMAGE=${PACKAGING_IMAGE:-knel/packaging:latest}
DOCKERFILE=${PACKAGING_DOCKERFILE:-docker/packaging/Dockerfile}
if ! docker image inspect "$IMAGE" >/dev/null 2>&1; then
echo "Building packaging image: $IMAGE"
docker build -t "$IMAGE" -f "$DOCKERFILE" .
fi
if ! docker ps -a --format '{{.Names}}' | grep -qx "$NAME"; then
echo "Creating container: $NAME"
docker run -d \
--name "$NAME" \
-v "$PWD":/workspace \
-w /workspace \
-v /var/run/docker.sock:/var/run/docker.sock \
"$IMAGE"
else
# Ensure it is running
if ! docker ps --format '{{.Names}}' | grep -qx "$NAME"; then
echo "Starting container: $NAME"
docker start "$NAME"
fi
fi
echo "Packaging container ready: $NAME (image: $IMAGE)"

6
scripts/workspace-clone.sh Executable file
View File

@@ -0,0 +1,6 @@
#!/usr/bin/env bash
set -euo pipefail
# Run the clone script inside the packaging container
scripts/packaging-exec.sh "cd PackagingForCloudronWorkspace && chmod +x *.sh && ./UpstreamVendor-Clone.sh"

6
scripts/workspace-update.sh Executable file
View File

@@ -0,0 +1,6 @@
#!/usr/bin/env bash
set -euo pipefail
# Run the update script inside the packaging container
scripts/packaging-exec.sh "cd PackagingForCloudronWorkspace && chmod +x *.sh && ./UpstreamVendor-Update.sh"