{"id":13461385,"url":"https://github.com/sealerio/sealer","last_synced_at":"2025-05-14T10:11:46.165Z","repository":{"id":37039476,"uuid":"362675427","full_name":"sealerio/sealer","owner":"sealerio","description":"Build, Share and Run Both Your Kubernetes Cluster and Distributed Applications  (Project under CNCF)","archived":false,"fork":false,"pushed_at":"2024-05-09T10:04:25.000Z","size":44351,"stargazers_count":2071,"open_issues_count":229,"forks_count":358,"subscribers_count":36,"default_branch":"main","last_synced_at":"2025-05-13T04:32:42.204Z","etag":null,"topics":["cloud-native","clusterimage","delivery-service","distributed-systems","docker","golang","installer","isv","k8s","kubernetes","kubernetes-deployment","operations","package","registry"],"latest_commit_sha":null,"homepage":"http://sealer.cool","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sealerio.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"code-of-conduct.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":"ROADMAP.md","authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-04-29T03:13:48.000Z","updated_at":"2025-05-09T23:59:48.000Z","dependencies_parsed_at":"2023-02-18T02:45:21.746Z","dependency_job_id":"bf049da1-66cb-416a-8f83-5974814fbe4e","html_url":"https://github.com/sealerio/sealer","commit_stats":{"total_commits":1035,"total_committers":87,"mean_commits":11.89655172413793,"dds":0.7584541062801933,"last_synced_commit":"f4f89c5853aeac330c1633ef6dc73b419e819287"},"previous_names":["alibaba/sealer"],"tags_count":35,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sealerio%2Fsealer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sealerio%2Fsealer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sealerio%2Fsealer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sealerio%2Fsealer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sealerio","download_url":"https://codeload.github.com/sealerio/sealer/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254111760,"owners_count":22016649,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cloud-native","clusterimage","delivery-service","distributed-systems","docker","golang","installer","isv","k8s","kubernetes","kubernetes-deployment","operations","package","registry"],"created_at":"2024-07-31T11:00:37.257Z","updated_at":"2025-05-14T10:11:41.148Z","avatar_url":"https://github.com/sealerio.png","language":"Go","funding_links":[],"categories":["Go","🗃️ 项目","kubernetes"],"sub_categories":[],"readme":"# Sealer -- Build, Share and Run Any Distributed Applications\n\n[![License](https://img.shields.io/badge/license-Apache%202-brightgreen.svg)](https://github.com/sealerio/sealer/blob/master/LICENSE)\n[![Go](https://github.com/sealerio/sealer/actions/workflows/go.yml/badge.svg)](https://github.com/sealerio/sealer/actions/workflows/go.yml)\n[![Release](https://github.com/sealerio/sealer/actions/workflows/release.yml/badge.svg)](https://github.com/sealerio/sealer/actions/workflows/release.yml)\n[![GoDoc](https://godoc.org/github.com/sealerio/sealer?status.svg)](https://godoc.org/github.com/sealerio/sealer)\n[![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/5205/badge)](https://bestpractices.coreinfrastructure.org/en/projects/5205)\n[![Twitter](https://img.shields.io/badge/Follow-sealer-1DA1F2?logo=twitter)](https://twitter.com/sealer_oss)\n[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Fsealerio%2Fsealer.svg?type=shield)](https://app.fossa.com/projects/git%2Bgithub.com%2Fsealerio%2Fsealer?ref=badge_shield)\n[![codecov](https://codecov.io/gh/sealerio/sealer/branch/main/graph/badge.svg?token=LH8XUR5YPL)](https://codecov.io/gh/sealerio/sealer)\n[![](https://img.shields.io/badge/Sealer-Check%20Your%20Contribution-orange)](https://opensource.alibaba.com/contribution_leaderboard/details?projectValue=sealer)\n\n## Contents\n\n* [Introduction](#introduction)\n* [Quick Start](#quick-start)\n* [Contributing](./CONTRIBUTING.md)\n* [FAQ](./FAQ.md)\n* [Adopters](./Adopters.md)\n* [LICENSE](LICENSE)\n* [Code of conduct](./code-of-conduct.md)\n\n## Introduction\n\nSealer[ˈsiːlər] provides a new way of distributed application delivery which is reducing the difficulty and complexity by packaging Kubernetes cluster and all application's dependencies into one ClusterImage.\n\nWe can write a Kubefile to build the ClusterImage, and use it to deliver your applications with embedded Kubernetes through Clusterfile.\n\n![image](https://user-images.githubusercontent.com/8912557/117263291-b88b8700-ae84-11eb-8b46-838292e85c5c.png)\n\n\u003e Concept\n\n* Kubefile: a file that describes how to build a ClusterImage.\n* ClusterImage: like docker image, and it contains all the dependencies(container images,yaml files or helm chart...) of your application needed.\n* Clusterfile: a file that describes how to run a ClusterImage.\n\n![image](https://user-images.githubusercontent.com/8912557/117400612-97cf3a00-af35-11eb-90b9-f5dc8e8117b5.png)\n\n## Awesome features\n\n* [x] Simplicity: Packing the distributed application into ClusterImage with few instructions.\n* [x] Efficiency: Launching the k8s-based application through ClusterImage in minutes.\n* [x] Scalability: Powerful cluster and image life cycle management, such as cluster scale, upgrade, image load, save and so on.\n* [x] Compatibility: Multi-arch delivery Supporting. Such as AMD, ARM with common Linux distributions.\n* [x] Iterative: Incremental operations on ClusterImage is like what container image behaves.\n\n## Quick start\n\nDownload sealer binary file.\n\n```shell script\n#install Sealer binaries\nwget https://github.com/sealerio/sealer/releases/download/v0.9.3/sealer-v0.9.3-linux-amd64.tar.gz \u0026\u0026 \\\ntar zxvf sealer-v0.9.3-linux-amd64.tar.gz \u0026\u0026 mv sealer /usr/bin\n```\n\n## Install a kubernetes cluster\n\n```shell\n# run a kubernetes cluster\nsealer run docker.io/sealerio/kubernetes:v1-22-15-sealerio-2 \\\n  --masters 192.168.0.2,192.168.0.3,192.168.0.4 \\\n  --nodes 192.168.0.5,192.168.0.6,192.168.0.7 --passwd xxx\n```\n\n## Build an sealer image\n\nKubefile:\n\n```shell\nFROM docker.io/sealerio/kubernetes:v1-22-15-sealerio-2\nAPP mysql https://charts/mysql.tgz\nAPP elasticsearch https://charts/elasticsearch.tgz\nAPP redis local://redis.yaml\nAPP businessApp local://install.sh\nLAUNCH [\"calico\", \"mysql\", \"elasticsearch\", \"redis\", \"businessApp\"]\n```\n\nor\n\n```shell\nFROM docker.io/sealerio/kubernetes:v1-22-15-sealerio-2\nCOPY mysql.tgz .\nCOPY elasticsearch.tgz .\nCOPY redis.yaml .\nCOPY install.sh .\nCMDS [\"sh application/apps/calico/calico.sh\", \"helm install mysql.tgz\", \"helm install elasticsearch.tgz\", \"kubectl apply -f redis.yaml\", \"bash install.sh\"]\n```\n\nbuild command:\n\n\u003e NOTE: --type=kube-installer is the default value for sealer build\n\n```shell\nsealer build -f Kubefile -t my-kubernetes:1.0.0 .\n```\n\n## Build an app image\n\nnginx.yaml:\n\n```shell\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n  name: my-nginx\n  namespace: default\nspec:\n  replicas: 1\n  selector:\n    matchLabels:\n      run: my-nginx\n  template:\n    metadata:\n      labels:\n        run: my-nginx\n    spec:\n      containers:\n        - name: my-nginx\n          image: nginx\n          ports:\n            - containerPort: 80\n```\n\nKubefile:\n\n```shell\nFROM scratch\nAPP nginx local://nginx.yaml\nLAUNCH [\"nginx\"]\n```\n\n```shell\nsealer build -f Kubefile -t sealer-io/nginx:latest --type app-installer\n```\n\n## Run the app image\n\n```shell\nsealer run sealer-io/nginx:latest\n# check the pod\nkubectl get pod -A\n```\n\n## Push the app image to the registry\n\n```shell\n# you can push the app image to docker hub, Ali ACR, or Harbor\nsealer tag sealer-io/nginx:latest {registryDomain}/sealer-io/nginx:latest\nsealer push {registryDomain}/sealer-io/nginx:latest\n```\n\n## Clean the cluster\n\nSome information of the basic settings will be written to the Clusterfile and stored in /root/.sealer/Clusterfile.\n\n```shell\nsealer delete -a\n```\n\n## User guide\n\nSealer provides a valid image list:\n\n| version  |                              image                                  |                  Arch                   |                                                           OS                                                        |              Network plugins            |             container runtime           |\n| :------: | :-----------------------------------------------------------------: | :-------------------------------------: | :-----------------------------------------------------------------------------------------------------------------: | :-------------------------------------: | :-------------------------------------: |\n| v0.8.6   | registry.cn-qingdao.aliyuncs.com/sealer-io/kubernetes:v1.22.15-0.8.6|                   x86                   |     CentOS/RHEL 7.5\u003cbr\u003eCentOS/RHEL 7.6\u003cbr\u003eCentOS/RHEL 7.7\u003cbr\u003eCentOS/RHEL 7.8\u003cbr\u003eCentOS/RHEL 7.9\u003cbr\u003eUbuntu 20.04     |                 calico                  |            hack docker v19.03.14        |\n| v0.9.3   | docker.io/sealerio/kubernetes:v1-18-3-sealerio-2                    |                x86/arm64                |     CentOS/RHEL 7.5\u003cbr\u003eCentOS/RHEL 7.6\u003cbr\u003eCentOS/RHEL 7.7\u003cbr\u003eCentOS/RHEL 7.8\u003cbr\u003eCentOS/RHEL 7.9\u003cbr\u003eUbuntu 20.04     |                 calico                  |            hack docker v19.03.14        |\n| v0.9.3   | docker.io/sealerio/kubernetes:v1-20-4-sealerio-2                    |                x86/arm64                |     CentOS/RHEL 7.5\u003cbr\u003eCentOS/RHEL 7.6\u003cbr\u003eCentOS/RHEL 7.7\u003cbr\u003eCentOS/RHEL 7.8\u003cbr\u003eCentOS/RHEL 7.9\u003cbr\u003eUbuntu 20.04     |                 calico                  |            hack docker v19.03.14        |\n| v0.9.3   | docker.io/sealerio/kubernetes:v1-22-15-sealerio-2                   |                x86/arm64                |     CentOS/RHEL 7.5\u003cbr\u003eCentOS/RHEL 7.6\u003cbr\u003eCentOS/RHEL 7.7\u003cbr\u003eCentOS/RHEL 7.8\u003cbr\u003eCentOS/RHEL 7.9\u003cbr\u003eUbuntu 20.04     |                 calico                  |            hack docker v19.03.14        |\n\n[get started](http://sealer.cool/docs/getting-started/introduction.html)\n\n## Official website\n\n[official website](http://sealer.cool)\n\n## Developing Sealer\n\n* [contributing guide](./CONTRIBUTING.md)\n\n## Communication Channels\n\n* CNCF Mailing List: to be added.\n* Twitter: [@sealer](https://twitter.com/sealer_oss)\n* DingTalk Group Number: 34619594\n\n\u003c!-- markdownlint-disable --\u003e\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"https://user-images.githubusercontent.com/31209634/199941518-82f88ba5-d13c-420c-9197-95a422f6b543.JPG\" width=\"300\" title=\"dingtalk\"\u003e\n\u003c/div\u003e\n\u003c!-- markdownlint-restore --\u003e\n\n## Code of Conduct\n\nsealer follows the [CNCF Code of Conduct](https://github.com/cncf/foundation/blob/master/code-of-conduct.md).\n\n## License\n\nSealer is licensed under the Apache License, Version 2.0. See [LICENSE](LICENSE) for the full license text.\n\n[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Fsealerio%2Fsealer.svg?type=large)](https://app.fossa.com/projects/git%2Bgithub.com%2Fsealerio%2Fsealer?ref=badge_large)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsealerio%2Fsealer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsealerio%2Fsealer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsealerio%2Fsealer/lists"}