- .dockerignore: exclude node_modules/.git/tmp/data/logs - Dockerfile: BuildKit cache mount for npm, --omit=dev at install, drop npm prune step - Reorder layers: shared/src/frontend copy before build, server copy + better-sqlite3 rebuild after. Server/shared changes no longer invalidate frontend build layer unless shared (FE dep) changes - Remove duplicate shared COPY in runtime stage (bundled in FE build) - docker/restart.sh: stop + rebuild + start in one script
22 lines
635 B
Bash
Executable File
22 lines
635 B
Bash
Executable File
#!/usr/bin/env bash
|
|
# scripts/docker-restart.sh — rebuild + restart docker container.
|
|
# Usage: ./scripts/docker-restart.sh
|
|
set -euo pipefail
|
|
cd "$(dirname "$0")/.."
|
|
|
|
echo "=== stopping existing container ==="
|
|
docker compose -f docker/docker-compose.yml down 2>/dev/null || true
|
|
|
|
echo "=== rebuilding image ==="
|
|
docker compose -f docker/docker-compose.yml build
|
|
|
|
echo "=== starting container ==="
|
|
docker compose -f docker/docker-compose.yml up -d
|
|
|
|
echo "=== status ==="
|
|
docker compose -f docker/docker-compose.yml ps
|
|
|
|
echo ""
|
|
echo "app: http://localhost:${PORT:-8080}"
|
|
echo "logs: docker compose -f docker/docker-compose.yml logs -f"
|