forked from baron/baron-sso
108 lines
3.0 KiB
Makefile
108 lines
3.0 KiB
Makefile
# Baron SSO용 Docker Compose 헬퍼
|
|
|
|
# 환경 변수 로드
|
|
ifneq (,$(wildcard ./.env))
|
|
include .env
|
|
export
|
|
endif
|
|
|
|
# Compose 파일 경로
|
|
COMPOSE_INFRA := compose.infra.yaml
|
|
COMPOSE_ORY := compose.ory.yaml
|
|
COMPOSE_APP := docker-compose.yaml
|
|
AUTH_CONFIG_ENV := .generated/auth-config.env
|
|
|
|
COMPOSE_CLI_ENV_ARGS :=
|
|
ifneq (,$(wildcard ./.env))
|
|
COMPOSE_CLI_ENV_ARGS += --env-file .env
|
|
endif
|
|
COMPOSE_CLI_ENV_ARGS += --env-file $(AUTH_CONFIG_ENV)
|
|
|
|
# --- 인증 설정 빌드/검증 ---
|
|
build-auth-config:
|
|
@echo "Building auth config..."
|
|
@mkdir -p .generated
|
|
@bash scripts/auth_config.sh build
|
|
|
|
validate-auth-config: build-auth-config
|
|
@echo "Validating auth config..."
|
|
@bash scripts/auth_config.sh validate
|
|
|
|
verify-auth-config: validate-auth-config
|
|
@echo "Verifying auth config wiring..."
|
|
@bash scripts/auth_config.sh verify
|
|
|
|
# --- 기본 실행 ---
|
|
# 주의: --remove-orphan 사용 금지 (다른 스택이 orphan으로 판단되어 종료될 수 있음)
|
|
up-all: validate-auth-config
|
|
@echo "Starting ALL stacks (infra + ory + app)..."
|
|
docker compose $(COMPOSE_CLI_ENV_ARGS) -f $(COMPOSE_INFRA) -f $(COMPOSE_ORY) -f $(COMPOSE_APP) up -d
|
|
|
|
# --- 개별 스택 실행 ---
|
|
up-infra:
|
|
@echo "Starting Infra stack (postgres/clickhouse/redis)..."
|
|
docker compose -f $(COMPOSE_INFRA) up -d
|
|
|
|
up-ory: validate-auth-config
|
|
@echo "Starting Ory stack (kratos/hydra/keto/oathkeeper)..."
|
|
docker compose $(COMPOSE_CLI_ENV_ARGS) -f $(COMPOSE_ORY) up -d
|
|
|
|
up-app: validate-auth-config
|
|
@echo "Starting App stack (backend/userfront/adminfront/devfront)..."
|
|
docker compose $(COMPOSE_CLI_ENV_ARGS) -f $(COMPOSE_APP) up -d
|
|
|
|
up-backend: validate-auth-config
|
|
@echo "Starting Backend only..."
|
|
docker compose $(COMPOSE_CLI_ENV_ARGS) -f $(COMPOSE_APP) up -d backend
|
|
|
|
up-dev: up-infra up-ory
|
|
@echo "Dev stack is up (infra + ory)."
|
|
|
|
up-front-dev: up-infra up-ory up-backend
|
|
@echo "Dev stack is up (infra + ory + backend)."
|
|
|
|
# --- 종료 (Down) ---
|
|
down-all:
|
|
@echo "Stopping ALL stacks (infra + ory + app)..."
|
|
docker compose -f $(COMPOSE_INFRA) -f $(COMPOSE_ORY) -f $(COMPOSE_APP) down
|
|
|
|
down-app:
|
|
@echo "Stopping App stack..."
|
|
docker compose -f $(COMPOSE_APP) down
|
|
|
|
down-backend:
|
|
@echo "Stopping Backend only..."
|
|
docker compose -f $(COMPOSE_APP) stop backend
|
|
|
|
down-infra:
|
|
@echo "Stopping Infra stack..."
|
|
docker compose -f $(COMPOSE_INFRA) down
|
|
|
|
down-ory:
|
|
@echo "Stopping Ory stack..."
|
|
docker compose -f $(COMPOSE_ORY) down
|
|
|
|
# --- 유틸리티 ---
|
|
# 인프라 상태 확인
|
|
check-infra:
|
|
@echo "Checking infra status..."
|
|
@if [ "$$(docker inspect -f '{{.State.Health.Status}}' baron_postgres 2>/dev/null)" != "healthy" ]; then \
|
|
echo "Error: PostgreSQL is not running or not healthy."; \
|
|
echo "Please run 'make up-infra' first."; \
|
|
exit 1; \
|
|
else \
|
|
echo "PostgreSQL is healthy."; \
|
|
fi
|
|
|
|
ps:
|
|
docker compose -f $(COMPOSE_INFRA) -f $(COMPOSE_ORY) -f $(COMPOSE_APP) ps
|
|
|
|
logs-infra:
|
|
docker compose -f $(COMPOSE_INFRA) logs -f
|
|
|
|
logs-ory:
|
|
docker compose -f $(COMPOSE_ORY) logs -f
|
|
|
|
logs-app:
|
|
docker compose -f $(COMPOSE_APP) logs -f
|