M2c-dev: development compose stack, backup job, Firebase setup docs
infra/dev: compose stack on the Mac (server kvitt-server:dev, on-demand backup), .env.example, build/up/logs/backup/copy-google-services scripts. No Caddy, no TLS (debug builds accept http to private LAN addresses, AC-2.8). Bind-mounted data. infra/backup: alpine 3.24.2 image and backup.sh (SPEC 10.9; Drive upload skipped when RCLONE_FOLDER_ID is empty). infra/README.md for the dev stack and Firebase. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Executable
+42
@@ -0,0 +1,42 @@
|
||||
#!/usr/bin/env bash
|
||||
# Builds the development images on this Mac (native linux/arm64, nothing pushed):
|
||||
# kvitt-server:dev from server/Dockerfile (milestone M2a)
|
||||
# kvitt-backup:dev from infra/backup/Dockerfile
|
||||
# Usage: infra/dev/build.sh [server|backup|all] (default: all)
|
||||
# Refuses to run while a Gradle build holds the gradle-serial lock (CLAUDE.md: never build images during a Gradle build).
|
||||
set -euo pipefail
|
||||
# shellcheck source=lib.sh
|
||||
. "$(dirname "$0")/lib.sh"
|
||||
|
||||
what="${1:-all}"
|
||||
lock=/tmp/kvitt-gradle.lock
|
||||
if [[ -d "$lock" ]] && pid="$(cat "$lock/pid" 2>/dev/null)" && [[ -n "$pid" ]] && kill -0 "$pid" 2>/dev/null; then
|
||||
echo "build.sh: a Gradle build is running (pid $pid, $lock); try again when it is done." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
server_image="$(env_value KVITT_SERVER_IMAGE)"; server_image="${server_image:-kvitt-server:dev}"
|
||||
backup_image="$(env_value KVITT_BACKUP_IMAGE)"; backup_image="${backup_image:-kvitt-backup:dev}"
|
||||
|
||||
build_server() {
|
||||
local dockerfile="$repo_root/server/Dockerfile"
|
||||
local context="${KVITT_SERVER_BUILD_CONTEXT:-$repo_root/server}"
|
||||
if [[ ! -f "$dockerfile" ]]; then
|
||||
echo "build.sh: $dockerfile does not exist yet (it comes with milestone M2a)." >&2
|
||||
return 1
|
||||
fi
|
||||
echo "Building $server_image from server/Dockerfile"
|
||||
docker build --platform linux/arm64 -f "$dockerfile" -t "$server_image" "$context"
|
||||
}
|
||||
|
||||
build_backup() {
|
||||
echo "Building $backup_image from infra/backup/Dockerfile"
|
||||
docker build --platform linux/arm64 -f "$repo_root/infra/backup/Dockerfile" -t "$backup_image" "$repo_root/infra/backup"
|
||||
}
|
||||
|
||||
case "$what" in
|
||||
server) build_server ;;
|
||||
backup) build_backup ;;
|
||||
all) build_backup; build_server ;;
|
||||
*) echo "usage: $0 [server|backup|all]" >&2; exit 2 ;;
|
||||
esac
|
||||
Reference in New Issue
Block a user