Encode the dual-repo worktree SOP as make targets so no step is skipped:
worktree-new creates the outer worktree off main, inits its own user/
submodule, branches both repos, and starts an isolated Grav dev server on an
auto-picked free port (8090+) whose identity is persisted in a git-ignored
.worktree-env; worktree-rm tears it all down including the submodule deinit
that, when skipped by hand, leaves orphaned .worktrees/ dirs.
docker-compose.yml container_name + ports are parametrized as ${VAR:-default}
so the main checkout is byte-identical, and the 11 hardcoded intotheeast_grav
refs in local targets now use $(GRAV_CONTAINER). CLAUDE.md points at the
commands instead of the manual steps.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RDS6t8wcpbwKvvrxykVQ5K
27 lines
773 B
YAML
27 lines
773 B
YAML
services:
|
|
grav:
|
|
build: .
|
|
# Overridable so a git worktree can run its own isolated dev server (see
|
|
# `make worktree-new`); unset → the canonical main-checkout values below.
|
|
container_name: ${GRAV_CONTAINER:-intotheeast_grav}
|
|
environment:
|
|
- GRAV_CHANNEL=production
|
|
- APACHE_RUN_USER=#1000
|
|
- APACHE_RUN_GROUP=#1000
|
|
ports:
|
|
- "${GRAV_PORT:-8081}:80"
|
|
volumes:
|
|
- ./user:/var/www/html/user
|
|
- ./php/php-local.ini:/usr/local/etc/php/conf.d/php-local.ini
|
|
restart: unless-stopped
|
|
|
|
travel-memories:
|
|
build: ./services/travel-memories
|
|
ports:
|
|
- "${TM_PORT:-8082}:8082"
|
|
volumes:
|
|
- ./docs/immich-workflow:/app/state
|
|
- ./user/pages:/app/pages
|
|
env_file: .env
|
|
user: "${UID}:${GID}"
|