결론: 앱은 정상이었고 Docker가 ZimaOS의 읽기 전용 루트에 CLI 설정을 쓰려고 했습니다
Compose 스택은 이미 다른 컴퓨터에서 정상적으로 작동하고 있었습니다. 하지만 ZimaOS에서는 mkdir /root/.docker: read-only file system 오류와 함께 실패했습니다. DOCKER_CONFIG를 쓰기 가능한 위치로 지정하자 실제 문제가 해결되었습니다.
일회성 앱에는 쓰기 가능한 Docker 설정 경로를 사용하세요
sudo -i
mkdir -p /var/lib/docker/.docker
export DOCKER_CONFIG=/var/lib/docker/.docker
docker compose up -d
실제 사례에서 이 명령이 작동한 이유는 Docker가 더 이상 어플라이언스의 루트 파일 시스템에 있는 /root/.docker를 만들려고 하지 않았기 때문입니다. Docker는 Docker CLI 설정에서 DOCKER_CONFIG 환경 변수를 문서화하고 있습니다.
반복해서 사용할 ZimaOS 앱은 Compose 파일을 올바르게 패키징하세요
현재 ZimaOS는 런타임 설정에 일반 Docker Compose를 사용하고, 앱 스토어 메타데이터에는 최상위 x-casaos 블록을 사용합니다. ZimaOS 앱 메타데이터에는 현재 v2 필드가 정의되어 있습니다.
업스트림 Docker Compose 스키마는 여전히 런타임의 기준입니다.
UI에서 로컬로 업로드한 이미지를 사용할 수 없었던 이유
앱 스토어 설치 흐름은 앱 정의를 통해 확인할 수 있는 이미지 참조를 요구합니다. 수동으로 로드한 로컬 이미지는 Docker에 존재하더라도 스토어 설치 경로의 요구 사항을 충족하지 못할 수 있습니다. 개인 가정용 앱이라면 직접 Compose를 사용하는 편이 더 간단하고, 배포하려면 이미지를 레지스트리에 게시하거나 올바른 ZimaOS 앱 패키지를 빌드하세요.
애플리케이션 데이터는 쓰기 가능한 저장소에 보관하세요
데이터베이스, 업로드 파일 및 설정을 영구 호스트 경로에 매핑하세요. Portainer 요구 사항은 수동으로 관리하는 Docker 워크로드를 위한 대안입니다.
스토어 방식은 스토어 기능이 필요할 때만 사용하세요
목표가 가족용 쇼핑 목록 앱 하나라면 직접 Compose를 사용하는 것으로 충분합니다. 아이콘, 메타데이터 및 업데이트를 포함한 설치 가능한 카탈로그 배포가 목표라면 현재 ZimaOS v2 앱 스토어 구조를 사용하세요. ZimaOS 앱 요구 사항에서 배포 환경을 확인할 수 있습니다.
