migrate/api/worker/frontend now reference
git.devils.zone/devil/youtube-studio-flow-{backend,frontend}:\${IMAGE_TAG}
instead of building on the deploy host. Adds scripts/build-and-push.sh
to build+tag (git short SHA + latest) and push both images from a dev
machine, and updates infrastructure/README.md with the pull-based
deploy sequence.
44 lines
1.6 KiB
Bash
44 lines
1.6 KiB
Bash
#!/usr/bin/env bash
|
|
# Builds the backend and frontend images and pushes them to the Gitea
|
|
# container registry at git.devils.zone. Requires `docker login
|
|
# git.devils.zone` to already be done (run that yourself, out of band, so
|
|
# the token never ends up in a Claude transcript).
|
|
#
|
|
# Usage: scripts/build-and-push.sh [tag]
|
|
# tag Extra tag to push alongside the git short SHA and `latest`.
|
|
# Useful for a release, e.g. scripts/build-and-push.sh v0.1.0
|
|
|
|
set -euo pipefail
|
|
|
|
REGISTRY="git.devils.zone"
|
|
OWNER="devil"
|
|
SHA=$(git rev-parse --short HEAD)
|
|
EXTRA_TAG="${1:-}"
|
|
|
|
BACKEND_IMAGE="${REGISTRY}/${OWNER}/youtube-studio-flow-backend"
|
|
FRONTEND_IMAGE="${REGISTRY}/${OWNER}/youtube-studio-flow-frontend"
|
|
|
|
echo "==> Building backend (${BACKEND_IMAGE}:${SHA})"
|
|
docker build -t "${BACKEND_IMAGE}:${SHA}" -t "${BACKEND_IMAGE}:latest" ./backend
|
|
|
|
echo "==> Building frontend (${FRONTEND_IMAGE}:${SHA})"
|
|
docker build -t "${FRONTEND_IMAGE}:${SHA}" -t "${FRONTEND_IMAGE}:latest" ./frontend
|
|
|
|
if [ -n "$EXTRA_TAG" ]; then
|
|
docker tag "${BACKEND_IMAGE}:${SHA}" "${BACKEND_IMAGE}:${EXTRA_TAG}"
|
|
docker tag "${FRONTEND_IMAGE}:${SHA}" "${FRONTEND_IMAGE}:${EXTRA_TAG}"
|
|
fi
|
|
|
|
echo "==> Pushing backend"
|
|
docker push "${BACKEND_IMAGE}:${SHA}"
|
|
docker push "${BACKEND_IMAGE}:latest"
|
|
[ -n "$EXTRA_TAG" ] && docker push "${BACKEND_IMAGE}:${EXTRA_TAG}"
|
|
|
|
echo "==> Pushing frontend"
|
|
docker push "${FRONTEND_IMAGE}:${SHA}"
|
|
docker push "${FRONTEND_IMAGE}:latest"
|
|
[ -n "$EXTRA_TAG" ] && docker push "${FRONTEND_IMAGE}:${EXTRA_TAG}"
|
|
|
|
echo "==> Done. Pushed tags: ${SHA}, latest${EXTRA_TAG:+, $EXTRA_TAG}"
|
|
echo " On the server: docker compose pull && docker compose run --rm migrate && docker compose up -d"
|