원격 배포 (llamon deploy)
llamon deploy는 아래를 한 번에 수행합니다.
- 프로젝트를 tar.gz로 패키징
scp로 원격 서버 전송- 원격 경로에 압축 해제
docker compose up실행
사용하는 빌드 산출물
섹션 제목: “사용하는 빌드 산출물”| 항목 | 값 | 비고 |
|---|---|---|
| Compose 파일 | docker-compose.local.yml | --compose-file로 변경 가능 |
| Dockerfile | Dockerfile.local | compose가 참조 (compose 파일 안 dockerfile: 키) |
| 빌드 모드 | wheelhouse 우선, 없으면 온라인 PyPI | Dockerfile.local 동작 |
| Postgres 등 사이드카 | compose 파일 그대로 함께 기동 | 메모리 모드에 따라 |
폐쇄망용 Dockerfile(prepare-offline이 갱신하는 production 파일)은 llamon deploy가 사용하지 않습니다. compose 없이 docker build + docker run으로 실행되는 구조입니다.
| 흐름 | 사용 파일 | compose | 빌드 모드 |
|---|---|---|---|
llamon run (로컬) | Dockerfile.local | docker-compose.local.yml | wheelhouse 우선, 없으면 온라인 |
llamon deploy (원격 SSH) | Dockerfile.local | docker-compose.local.yml (원격에서 실행) | 동일 |
prepare-offline 산출물 (폐쇄망) | Dockerfile | 사용 안 함 | wheelhouse / 내부 PyPI / nexus |
가장 빠른 배포
섹션 제목: “가장 빠른 배포”uv run llamon deploy ./my-agent --target ubuntu@<원격주소>기본 원격 경로는 /opt/<agent-name>입니다.
자주 쓰는 예시
섹션 제목: “자주 쓰는 예시”# 원격 경로 지정uv run llamon deploy ./my-agent \ --target ubuntu@<원격주소> \ --remote-dir /srv/llamon/my-agent# 기존 아카이브 재사용uv run llamon deploy ./my-agent \ --target ubuntu@<원격주소> \ --artifact ./dist/my-agent.tar.gz# SSH 키/포트 지정uv run llamon deploy ./my-agent \ --target ubuntu@<원격주소> \ --identity-file ~/.ssh/prod.pem \ --port 2222# 전송/압축해제만 수행uv run llamon deploy ./my-agent --target ubuntu@<원격주소> --no-up# 예정 명령 확인uv run llamon deploy ./my-agent --target ubuntu@<원격주소> --dry-runuv run llamon deploy ./my-agent --target ubuntu@<원격주소> --dry-run --format json사전 확인
섹션 제목: “사전 확인”- 로컬:
ssh,scp,uv - 원격 서버:
docker,docker compose,bash,tar - 프로젝트 디렉토리에
main.py,docker-compose.local.yml존재
원격 서버가 인터넷(PyPI)에 접근할 수 없다면, 전송 전에 wheelhouse를 미리 준비하세요. 그러면 Dockerfile.local 빌드가 온라인 PyPI 대신 wheelhouse를 사용합니다.
uv run llamon vendor-deps ./my-agent # <source>/wheelhouse 생성주요 플래그
섹션 제목: “주요 플래그”| 플래그 | 설명 |
|---|---|
--target | SSH 대상 (user@host) |
--remote-dir | 원격 배포 디렉토리 |
--artifact | 기존 tar.gz 아카이브 사용 |
--archive-output | 자동 생성 아카이브 경로 |
--keep-archive | 자동 생성 아카이브를 로컬에 유지 |
--identity-file | SSH 개인키 경로 |
--port | SSH 포트 |
--compose-file | 원격 compose 파일명 |
--no-up | 전송/압축해제만 수행 |
--no-build | docker compose up 시 --build 생략 |
--dry-run | 실제 실행 없이 예정 명령 출력 |
--format text|json | dry-run 출력 형식 |