이 사례는 JelinaOS 장치에 컨테이너 애플리케이션을 Release 체계로 배포하는 전체 절차를 보여 주며 프로젝트 납품용 참고 템플릿으로 사용할 수 있습니다.
시나리오
섹션 제목: “시나리오”엣지 장치 한 대에 웹 서비스를 배포합니다. Release 관리, 부팅 시 자동 시작, 장애 시 자동 복구와 데이터 영구 저장이 요구됩니다.
1단계: 시스템 준비
섹션 제목: “1단계: 시스템 준비”- 시스템 설치에 따라 JelinaOS를 설치합니다.
- 최초 부팅과 구성에 따라 기본 구성을 완료합니다.
- JelinaCloud에 연결하고 장치 등록을 완료합니다.
docker version으로 컨테이너 런타임을 사용할 수 있는지 확인합니다.
2단계: 이미지 빌드와 푸시
섹션 제목: “2단계: 이미지 빌드와 푸시”개발 환경에서 애플리케이션 이미지를 빌드하고 이미지 저장소에 푸시합니다.
docker build -t registry.example.com/webapp:1.0.0 .docker push registry.example.com/webapp:1.0.03단계: Release 생성
섹션 제목: “3단계: Release 생성”JelinaCloud에서 Release를 생성하고 이미지, 재시작 정책, 환경 변수, 포트와 데이터 볼륨을 지정하여 컨테이너 애플리케이션을 추가합니다. 패키지 업로드를 포함한 자세한 절차는 JelinaCloud Release 생성을 참조하세요.
4단계: 장치에 배포
섹션 제목: “4단계: 장치에 배포”대상 플릿에 Release를 배포하면 장치 에이전트가 자동 적용합니다. 장치에서 다음을 검증합니다.
docker ps # 컨테이너가 실행 중임curl http://localhost:8080 # 서비스에 접근할 수 있음docker logs webapp # 로그가 정상임5단계: 실행 감독 기능 검증
섹션 제목: “5단계: 실행 감독 기능 검증”- 장애 자동 복구: 이상을 시뮬레이션한 뒤 장치 에이전트가 애플리케이션을 자동 재시작하여 복구합니다.
- 부팅 시 자동 시작: 장치 재시작 후 애플리케이션이 자동으로 다시 실행됩니다.
- 데이터 보존: 컨테이너 업그레이드·재생성 후에도 데이터 파티션의 데이터가 유지됩니다.
6단계: 새 버전 게시(선택 사항)
섹션 제목: “6단계: 새 버전 게시(선택 사항)”- 새 버전 이미지를 빌드하고 푸시합니다.
- 클라우드에서 이미지 버전을 갱신하여 새 Release를 생성합니다.
- 장치에 배포하면 자동 업그레이드됩니다.
- 문제가 생기면 이전 버전을 다시 지정하여 롤백합니다.
| 요구사항 | 구현 방식 |
|---|---|
| Release 관리 | Release에 애플리케이션을 정의하고 장치 에이전트가 통합 배포 |
| 부팅 시 자동 시작 | Release에 재시작 정책을 구성하여 시스템과 함께 자동 복구 |
| 장애 자동 복구 | 장치 에이전트가 비정상 애플리케이션 자동 재시작 |
| 데이터 영구 저장 | 데이터 파티션에 데이터 마운트 |
| 버전 업데이트 | 새 Release를 배포하고 롤백 지원 |
관련 문서
섹션 제목: “관련 문서”- 컨테이너 애플리케이션 — 컨테이너 구성 안내
- 클라우드 애플리케이션 배포와 OTA — Release와 업데이트 절차
- 애플리케이션 관리 — Release 체계 개요