주요 명령어
자주 사용하는 Makefile 명령어를 카테고리별로 설명합니다.
명령어 구조
모든 명령어는 다음 형식을 따릅니다:
make <command> NAME=<project> [OPTIONS]
| 요소 | 설명 | 예시 |
|---|---|---|
command | 실행할 작업 | up, down, migrate |
NAME | 대상 프로젝트 (필수) | myproject, _portal |
OPTIONS | 추가 옵션 (선택) | SUB=service, BACKUP=filename |
플랫폼 명령어 (NAME 불필요)
프로젝트와 무관하게 실행하는 명령어입니다.
make help # 전체 명령어 도움말
make process # 운영 프로세스 가이드
make list # 등록된 프로젝트 목록
make ports # 포트 할당 현황
make check-prereq # 선행 조건 검사 (Docker, Git 등)
make setup # 플랫폼 초기 설정
컨테이너 관리 (docker.mk)
기본 명령어
make up NAME=myproject # 컨테이너 시작
make down NAME=myproject # 컨테이너 중지
make restart NAME=myproject # 재시작
make status NAME=myproject # 상태 확인
특정 서비스만 실행 (SUB 옵션)
_portal처럼 여러 서비스가 있는 프로젝트에서 사용합니다.
make up NAME=_portal SUB=portal-docs # docs 서비스만 시작
make restart NAME=_portal SUB=portal-web # web 서비스만 재시작
make down NAME=_portal SUB=portal-store # store 서비스만 중지
로그 확인
make logs NAME=myproject # 전체 로그 (실시간)
make logs-app NAME=myproject # 앱(web) 로그
make logs-db NAME=myproject # PostgreSQL 로그
make logs-redis NAME=myproject # Redis 로그
개발 도구 (shell.mk)
컨테이너 접속
make shell NAME=myproject # 앱 컨테이너 bash
make shell-db NAME=myproject # PostgreSQL psql
쉘 내부 작업 예시
# 앱 쉘에서
make shell NAME=myproject
> php artisan tinker
> composer require package/name
# DB 쉘에 서
make shell-db NAME=myproject
> \dt # 테이블 목록
> SELECT * FROM users; # 쿼리 실행
데이터베이스 (database.mk)
마이그레이션
make migrate NAME=myproject # 마이그레이션 실행
make seed NAME=myproject # 시더 실행
make fresh NAME=myproject # DB 초기화 (drop + migrate + seed)
fresh 명령어 주의
make fresh는 모든 데이터를 삭제합니다. 운영 환경에서는 절대 사용하지 마세요.
안전한 마이그레이션
# 1. 백업 먼저
make backup NAME=myproject
# 2. 마이그레이션
make migrate NAME=myproject
# 3. 문제 시 롤백
make rollback NAME=myproject
빌드 및 설치 (build.mk)
새 프로젝트 생성
# 1. 템플릿 복사
make create NAME=newproject
# 2. 환경변수 설정
vi workspace/newproject/.env
# 3. 초기 설치 (build + up + migrate + seed)
make install NAME=newproject
개별 빌드
make build NAME=myproject # Docker 이미지 빌드
make copy-env NAME=myproject # .env.example → .env 복사
make setup NAME=myproject # Composer, npm 설치 + 빌드