확장 패키징 및 출시
확장 패키징 및 출시 (Package and release your extension)
확장을 패키징하고 배포하는 방법에 대한 추가 정보를 설명하는 문서예요.
출처: 문서
본문
이 페이지는 확장을 패키징하고 배포하는 방법에 대한 추가 정보를 담고 있어요.
확장 패키징하기 (Package your extension)
Docker 확장은 Docker 이미지로 패키징돼요. UI, 백엔드 서비스(호스트 또는 VM), 필요한 바이너리를 포함한 전체 확장 런타임이 확장 이미지에 포함되어야 해요.
모든 확장 이미지는 파일 시스템 루트에 확장의 내용을 정의하는 metadata.json 파일을 포함해야 해요.
Docker 이미지는 확장에 대한 정보를 제공하는 여러 이미지 라벨을 가져야 해요. 확장 개요 정보를 제공하기 위해 확장 라벨 사용 방법을 참조하세요.
확장을 패키징하고 출시하려면 Docker 이미지를 빌드(docker build)하고, 확장 버전을 관리할 수 있는 특정 태그로 이미지를 Docker Hub에 푸시(docker push)해야 해요.
확장 출시하기 (Release your extension)
Docker 이미지 태그는 확장의 최신 버전을 가져오고 업데이트가 있는지 알 수 있도록 semver 관례를 따라야 해요. 시맨틱 버전 관리에 대해 자세히 알아보려면 semver.org를 참조하세요.
확장 이미지는 사용자가 ARM/AMD 하드웨어에 확장을 설치할 수 있도록 multi-arch 이미지여야 해요. 이 multi-arch 이미지는 ARM/AMD 특정 바이너리를 포함할 수 있어요. Mac 사용자는 자신의 아키텍처에 따라 자동으로 올바른 이미지를 사용해요.
호스트에 바이너리를 설치하는 확장은 동일한 확장 이미지에 Windows 바이너리도 제공해야 해요. 확장을 위한 multi-arch 이미지 빌드 방법을 참조하세요.
확장은 코드 저장소에 대한 제약 없이 구현할 수 있어요. Docker는 확장을 사용하기 위해 코드 저장소에 접근할 필요가 없어요. 또한 Docker Desktop 릴리스에 의존하지 않고 확장의 새 릴리스를 관리할 수 있어요.
새 릴리스 및 업데이트 (New releases and updates)
새 태그가 있는 새 이미지를 Docker Hub에 푸시하여 Docker 확장의 새 버전을 출시할 수 있어요.
확장에 해당하는 이미지 저장소에 푸시된 새 이미지는 그 확장의 새 버전을 정의해요. 이미지 태그는 버전 번호를 식별하는 데 사용돼요. 확장 버전은 버전을 쉽게 이해하고 비교할 수 있도록 semver를 따라야 해요.
Docker Desktop은 Marketplace에 게시된 확장 목록을 스캔해 새 버전을 찾고, 사용자가 특정 확장을 업그레이드할 수 있을 때 알림을 제공해요. Marketplace에 속하지 않은 확장은 현재 자동 업데이트 알림이 없어요.
사용자는 Docker Desktop 자체를 업데이트하지 않고도 어떤 확장의 최신 버전도 다운로드하고 설치할 수 있어요.
확장 API 의존성 (Extension API dependencies)
확장은 의존하는 Extension API 버전을 지정해야 해요. Docker Desktop은 확장의 요구 버전을 확인하고 현재 설치된 Docker Desktop 버전과 호환되는 확장만 설치하도록 제안해요. 최신 확장을 설치하려면 사용자가 Docker Desktop을 업데이트해야 할 수도 있어요.
확장 이미지 라벨은 확장이 의존하는 API 버전을 지정해야 해요. 이를 통해 Docker Desktop은 전체 확장 이미지를 먼저 다운로드하지 않고도 최신 버전의 확장 이미지를 검사할 수 있어요.
확장 및 확장 SDK의 라이선스 (License on extensions and the extension SDK)
Docker Extension SDK는 Apache 2.0 라이선스로 제공되며 무료로 사용할 수 있어요.
각 확장이 어떻게 라이선스를 받아야 하는지에 대한 제약은 없어요. 새 확장을 만들 때 결정하는 것은 여러분 몫이에요.