JelinaOS는 docker-compose 2.x 문법과 완전히 호환되는 즉시 사용 가능한 오케스트레이션을 제공합니다. 클라우드 Release 또는 로컬 관리 인터페이스에서 통합 구성하면 장치 에이전트가 자동 배포·실행합니다. 여기에 비컨테이너 애플리케이션(ProgramSet)의 선언형 관리를 확장하여 기존 프로그램도 “구성만으로 관리”할 수 있도록 합니다.
오케스트레이션 실행 방식
섹션 제목: “오케스트레이션 실행 방식”오케스트레이션 파일은 선언형 구성입니다. 클라우드 Release 또는 로컬 관리 인터페이스에서 정의하면 에이전트가 동기화하여 자동 배포합니다. 장치의 Docker 명령은 개별 컨테이너의 일상 작업에 사용하며, 다중 서비스 오케스트레이션은 에이전트가 통합 수행하므로 별도 도구를 설치할 필요가 없습니다.
Compose 호환성
섹션 제목: “Compose 호환성”JelinaOS의 Compose 지원은 2.x 규격을 기반으로 하여 일반적인 오케스트레이션 파일을 원활하게 이전할 수 있습니다.
- 서비스 정의, 네트워크, 볼륨, 환경 변수와 의존 관계 등의 주요 구성 지원.
- 2.x 버전에 도입된 필드와 동작 호환.
- 3.x의 신규 필드는 지원하지 않으므로 이전 시 2.x 문법을 사용하세요.
version: "2.4"
services: app: image: myapp:1.0.0 restart: always environment: MODE: production ports: - "8080:80"
worker: image: myworker:1.0.0 restart: on-failure depends_on: - app비컨테이너 애플리케이션: ProgramSet 선언형 관리
섹션 제목: “비컨테이너 애플리케이션: ProgramSet 선언형 관리”산업 현장에는 스크립트, 데몬과 타사 바이너리 등 기존 방식의 프로그램이 많습니다. JelinaOS는 이를 통합 선언형 관리에 포함하고 구성 필드를 시스템 서비스 의미와 일대일로 대응시켜 낮은 학습 비용과 강력한 관리 기능을 제공합니다.
기본 예제
섹션 제목: “기본 예제”programs: myapp: command: run.sh # 시작 명령 running: true # 실행 여부 restart: always # 재시작 정책 environment: # 환경 변수 MODE: production working_directory: . # 작업 디렉터리 user: root # 실행 사용자 pid_file: /var/run/myapp.pid지원 구성 필드
섹션 제목: “지원 구성 필드”| 필드 | 의미 | 설명 |
|---|---|---|
command |
시작 명령 | 필수, 프로그램 진입점 |
running |
실행 여부 | 기본값 true |
restart |
재시작 정책 | no / on-success / on-failure / on-abnormal / on-watchdog / on-abort / always |
environment |
환경 변수 | 키-값 쌍 |
kill_signal |
종료 신호 | 프로그램 중지 시 보내는 신호 |
working_directory |
작업 디렉터리 | 프로그램 실행 디렉터리 |
type |
서비스 유형 | simple / forking / oneshot / dbus / notify / idle |
user / group |
실행 계정 | 지정 사용자/그룹으로 실행 |
pid_file |
PID 파일 | 프로세스 PID 기록 |
wants / requires |
의존 관계 | 약한 의존성 / 강한 의존성 |
before / after |
시작 순서 | 지정 서비스 이전/이후 시작 |
conflicts |
상호 배타 관계 | 지정 서비스와 동시 실행 불가 |
start_limit_interval_sec / start_limit_burst |
재시작 제한 | 지정 시간 구간의 최대 재시작 횟수 |
start_limit_action |
한도 초과 동작 | none / reboot / poweroff 등 |
remain_after_exit |
종료 후 상태 유지 | 중복 시작 방지 |
exec_start_pre / exec_start_post |
실행 전후 명령 | 시작 전/후 실행할 명령 |
서비스 유닛 확장
섹션 제목: “서비스 유닛 확장”ProgramSet은 부팅 의존성과 조건 검사 등 시스템 유닛 수준의 고급 구성도 지원합니다.
programs: myapp: command: run.sh restart: always Install: WantedBy: multi-user.target # 부팅 시 자동 시작 Unit: ConditionPathExists: /data/app/config.json # 조건 확인시나리오 예제: 혼합 오케스트레이션
섹션 제목: “시나리오 예제: 혼합 오케스트레이션”version: "2.4"
services: # 컨테이너화된 업무 web: image: myweb:1.0.0 restart: always
programs: # 기존 수집 프로그램 collector: command: collector --config /data/collector.conf restart: on-failure after: web컨테이너와 네이티브 프로그램이 같은 오케스트레이션 체계에서 협력하고 의존 관계, 시작 순서와 재시작 정책을 통합 관리합니다. 이것이 JelinaOS 애플리케이션 관리의 고유한 가치입니다.