커뮤니티 솔루션

루트 오류 없이 ZimaOS에 나만의 Docker 앱 배포하기

A household web app worked with Docker Compose elsewhere but failed on ZimaOS because Docker tried to create /root/.docker on the read-only root filesystem.

결론: 앱은 정상이었고 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 앱 요구 사항에서 배포 환경을 확인할 수 있습니다.