源码快照 @ 2026-09-02 (source-only, 剔除非源码素材)
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
# Build/refresh the reusable Daytona snapshot used by Den server sandboxes.
|
||||
|
||||
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
||||
SNAPSHOT_NAME="${DAYTONA_SERVER_SNAPSHOT:-openwork-server}"
|
||||
REGION="${DAYTONA_TARGET:-us}"
|
||||
|
||||
snapshot_id() {
|
||||
daytona snapshot list -f json | node -e 'const name = process.argv[1]; let input = ""; process.stdin.on("data", (chunk) => input += chunk); process.stdin.on("end", () => { const snapshot = JSON.parse(input).find((item) => item.name === name); if (snapshot) process.stdout.write(snapshot.id || snapshot.name); });' "$1"
|
||||
}
|
||||
|
||||
existing_snapshot_id="$(snapshot_id "$SNAPSHOT_NAME")"
|
||||
if [ -n "$existing_snapshot_id" ]; then
|
||||
echo "==> Deleting existing snapshot: $SNAPSHOT_NAME"
|
||||
daytona snapshot delete "$existing_snapshot_id" >/dev/null <<< "y"
|
||||
for _ in $(seq 1 60); do
|
||||
if [ -z "$(snapshot_id "$SNAPSHOT_NAME")" ]; then
|
||||
break
|
||||
fi
|
||||
sleep 5
|
||||
done
|
||||
fi
|
||||
|
||||
echo "==> Creating Daytona server snapshot: $SNAPSHOT_NAME"
|
||||
# 10 GB is the per-sandbox maximum in this org; the baked node_modules and
|
||||
# Den build outputs fit because the image skips Electron/browser binaries.
|
||||
daytona snapshot create "$SNAPSHOT_NAME" \
|
||||
--dockerfile "$ROOT_DIR/.devcontainer/Dockerfile.daytona-server" \
|
||||
--cpu 4 \
|
||||
--memory 8 \
|
||||
--disk 10 \
|
||||
--region "$REGION"
|
||||
|
||||
echo "Snapshot ready: $SNAPSHOT_NAME"
|
||||
Reference in New Issue
Block a user