داکر با افتخار و خوشحال از اعلام کمک مالی کتابخانه cnab to-oci ما به پروژه CNAB. این پروژه سال گذشته پس از انتقال مایکروسافت و داکر مشخصات CNAB به بنیاد توسعه مشترک بنیاد لینوکس ایجاد شد. در آن زمان مخزن مشخصات CNAB از سازمان deislab GitHub به سازمان cnabio جدید منتقل شد. پیاده سازی های مرجع – cnab-go که همان اجرای کتابخانه Golang است از مشخصات و مأموریت های اجرای مرجع CLI – نیز منتقل شده است.

cnab-to-oci برای چیست؟

Docker در توسعه مشخصات CNAB و پیاده سازی های مرجع آن ، و هدایت کار در کتابخانه cnab to-oci برای به اشتراک گذاشتن بسته نرم افزاری CNAB با استفاده از رجیستری موجود کانتینر. این کتابخانه اکنون توسط 3 ابزار CNAB ، Docker App ، Porter و duffle و همچنین Docker Hub استفاده می شود. با موفقیت نحوه فشار ، کشیدن و به اشتراک گذاری بسته نرم افزاری CNAB با استفاده از رجیستری را نشان داد. این کار به عنوان پایه ای برای مشخصات ثبت نام های CNAB در آینده مورد استفاده قرار می گیرد.

انتقال در حال حاضر انجام می شود ، بنابراین از همین حالا لطفاً در واردات Golang به github.com/cnabio/cnab-to-oci مراجعه کنید.

چگونه cnab to-oci یک بسته CNAB را در یک رجیستری ذخیره می کند؟

همانطور که می دانید مشخصات تصویر OCI دو شی اصلی را معرفی می کند: مانیفست OCI و شاخص تصویر OCI. اولین مورد آن به خوبی شناخته شده است و نمایانگر تصویر کلاسیک داکر است. مورد دیگر در ابتدا برای ذخیره سازی تصاویر با معماری چند منظوره استفاده شده است (نمونه مثال nginx را ببینید).

اما آنچه ممکن است شما نمی دانید این است که این مشخصات ، استفاده از شاخص های OCI را به تصاویر چند قوس محدود نمی کند. . شما می توانید تقریباً هر آنچه را که می خواهید ، ذخیره کنید ، تا زمانی که مشخصات را برآورده کنید ، و کاملاً باز است.

cnab-to-oci از این صراحت برای فشار آوردن bundle.json ، بلکه دعوت استفاده می کند. تصویر و تصاویر مؤلفه (یا تصاویر خدمات برای یک برنامه داکر). همه چیز را در همان مخزن سوق می دهد ، بنابراین فرد این تضمین را دارد که هنگامی که کسی بسته های خود را بکشد ، همه اجزای سازنده نیز می توانند بکشند. مخزن شامل یک ابزار CLI مفید است که می تواند فشار و کشش هر بسته نرم افزاری CNAB.json را انجام دهد.

با دستور زیر یک نمونه بسته نرم افزاری را به مخزن Docker Hub فشار می دهیم. این همه مانیفست های موجود در بسته نرم افزاری را فشار می دهد ، سپس یک شاخص OCI ایجاد می کند و در انتها آن را هل می دهد. نتیجه هضم حاصل از این ، به فهرست بسته نرم افزاری OCI اشاره می کند.

$ bin / cnab-to-oci

$ ./bin/cnab-to-oci push مثال / Helloworld -cnab / bundle.json -t hubusername / repo: demo –log-level = debug –auto-update-بسته نرم افزاری

DEBU [0000] رفع بسته نرم افزاری docker.io/hubusername/repo:demoamez19459020faqDEBUociation19459042 ] به روزرسانی ورود به نقشه جابجایی برای "cnab / helloworld: 0.1.1"
شروع به کپی کردن تصویر cnab / helloworld: 0.1.1 …
تصویر کامل cnab / helloworld: 0.1.1 کپی
DEBU [0004] بسته نرم افزاری ثابت
DEBU [0004] فشار دادن بسته نرم افزاری CNAB docker.io/hubusername/repo:demoociation19459020 معروفDEBULOAD19459044] پیکربندی بسته نرم افزاری CNAB
DEBU [0004] سعی در تنظیم Cund [0004] CNAB Bundle Config Descripttor
DEBU [0004] {
"mediaType": "Application / vnd.cnab.config.v1 + json" ،
"هضم": c5b "،
" size ": 498
}
DEBU [0005] تلاش برای فشار دادن مانیفست CNAB Bundle Config
DEBU [0005] CNAB Bundle Config Manifest
DEBU [0005] {
"mediaType": "Application / vnd.oci.image.manifest.v1 + json" ،
"digest": "sha256: 6ec4fd695cace0e3d4305838fdf9fcd646798d3fea42b3abb28c117f903aa [194590903[194590903193903193903size[19390903[194590903[194590903[194590903[194590903[194590903[194590903[194590903[194590903[194590903[194590903] 1920903 193903 193903 19،20903 size DEBU [0006] نتوانست مانیفست رابط تنظیمات بسته نرم افزاری CNAB را بکشاند ، با استفاده از یک روش fallback
DEBU [0006] تلاش برای فشار دادن تنظیمات بسته بندی CNAB
DEBU [0006] CNAB Bundle Config Descriptor
DEBU [1945903]
"mediaType": "Application / vnd.oci. DEBU [0006] در تلاش برای فشار دادن مانیفست پیکربندی بسته نرم افزاری CNAB
DEBU [0006] پیکربندی بسته نرم افزاری CNAB آشکار توصیف
Debu به [0006] {
"mediaType": "نرم افزار / vnd.oci.image.manifest.v1 + JSON"،
"هضم": "SHA256: b9616da7500f8c7c9a5e8d915714cd02d11bcc71ff5b4fd190bb77b1355c8549"،
" اندازه ": 193
}
DEBU [0006] CNAB بسته نرم افزاری پیکربندی تحت فشار قرار دادند
DEBU [0006] فشار شاخص CNAB
DEBU [0006] تلاش برای فشار دادن شاخص OCI
DEBU
DEBU
DEBU
DEBU
DEBU
DEBU
DEBU
DEBU
schemaVersion ": 2،" manifests ": [{“mediaType”:”application/vnd.oci.image.manifest.v1+json”,”digest”:”sha256:b9616da7500f8c7c9a5e8d915714cd02d11bcc71ff5b4fd190bb77b1355c8549″,”size”:193,”annotations”:{“io.cnab.manifest.type”:”config”}},{“mediaType”:”application/vnd.docker.distribution.manifest.v2+json”,”digest”:”sha256:a59a4e74d9cc89e4e75dfb2cc7ea5c108e4236ba6231b53081a9e2506d1197b6″,”size”:942,”annotations”:{“io.cnab.manifest.type”:”invocation”}}]،" حاشیه نویسی ": {" io.cnab.keywords ":" [”helloworld”,”cnab”,”tutorial”] "،" io.cnab.runtime_version ":" v1.0.0، "org.opencontainers .artifactType ":" Application / vnd.cnab.manifest.v1 ″، "org.opencontainers.image.authors": "[{”name”:”Jane Doe”,”email”:”[email protected]”,”url”:”https://example.com”}]" ، "org.opencontainers.image.description": "شرح مختصری از بسته نرم افزاری شما" ، "org.opencontainers.image.title": "helloworld"، "org.opencontainers.image.version": "0.1.1 ″}}
DEBU [0006] OCI Index توصیف
DEBU [0006] {
mediaType ":" Application / vnd.oci.image.index.v1 + json "،
" digest ":" sha256: fcee8577f3acc8ddc6e0280e6d1eb15be70bdff460fe7353abf917a872487af2 "،
] size
] CNAB Index تحت فشار قرار داد
DEBU [0007] CNAB بسته نرم افزاری را فشار داد
با موفقیت هضم شد ، و با استفاده از "sha256: fcee8577f3acc8ddc6e0280e6d1eb15be70bdff460fe7353abf917a872487af2" [2014] بسته از رجیستری این فقط پرونده bundle.json را بارگیری می کند ، اما همانطور که ممکن است متوجه شوید این یک مرجع هضم شده برای مانیفست تصویر هر مؤلفه ، در همان مخزن رجیستری است. Docker Engine هر زمان که بخواهید تصاویر مورد نیاز این بسته را به شما می دهد. کشیدن یک بسته نرم افزاری یک فرآیند سبک وزن است.

$ ./bin/cnab-to-oci pull hubusername / repo: demo –log-level = debug

DEBU [0000] با کشیدن بسته نرم افزاری CNAB docker.io/hubusername/ repo: demo
DEBU [0000] دریافت توصیفگر OCI فهرست
DEBU [0001] {
"mediaType": "Application / vnd.oci.image.index.v1 + json" ،
":" SHA256: fcee8577f3acc8ddc6e0280e6d1eb15be70bdff460fe7353abf917a872487af2 "،
" اندازه ": 926
}
Debu به [0001] در حال بارگیری صفحه اول OCI SHA256: fcee8577f3acc8ddc6e0280e6d1eb15be70bdff460fe7353abf917a872487af2
Debu به [0001] {
" schemaVersion ": 2،
"تجلی": [
{
"mediaType": "Application / vnd.oci.image.manifest.v1 + json" ،
"هضم": ] "اندازه": 193 ،
"حاشیه نویسی ons ": {
" io.cnab.manifest.type ":" پیکربندی "
}
} ،
{
" mediaType ":" Application / vnd.docker.distribution.manifest .v2 + json "،
" digest ":" sha256: a59a4e74d9cc89e4e75dfb2cc7ea5c108e4236ba6231b53081a9e2506d1197b6 "،
" size ": 942،
" anno " فراخوانی "
}
}

" annotations ": {
" io.cnab.keywords ":" [”helloworld”,”cnab”,”tutorial”] "،
" io.cnab.runtime_version " : "v1.0.0" ،
"org.opencontainers.artifactType": "Application / vnd.cnab.manifest.v1"،
"org.opencontainers.image.authors": "[{”name”:”Jane Doe”,”email”:”[email protected]”,”url”:”https://example.com”}]"،
"org.opencontainers.image.description": "شرح مختصری از بسته نرم افزاری" ،
"org.opencontainers.image.title": "helloworld"،
"org.opencontainers.image.version": "0.1.1"
}
}
DEBU [0001] تنظیم بسته نرم افزاری توصیفگر
DEBU [0001] {
"mediaType": "Application / vnd.oci.image.manifest.v1 + json" ،
"dig" اندازه ": 193 ،
" حاشیه نویسی ": {
" io.cnab.manifest.type ":" پیکربندی "
}
}
DEBU [0001] دریافت بسته نرم افزاری مانیفست sha256: b9616da7500f8c7c9a5e8d915714cd02d11bcc71ff5b4fd190bb77b1355c8549
DEBU [0001] {
"schemaVersion": 2،
"conf."
"هضم": "sha256: e91b9dfcbbb3b88bac94726f276b89de46e4460b55f6e6d6f876e666b150ec5b" ،
"اندازه": 498

"لایه": null پست
}
Debu به [0001] در حال بارگیری بسته نرم افزاری SHA256: e91b9dfcbbb3b88bac94726f276b89de46e4460b55f6e6d6f876e666b150ec5b
Debu به [0002] {
"schemaVersion" : "v1.0.0" ،
"name": "helloworld"،
"version": "0.1.1"،
"شرح": "شرح مختصری از بسته های شما" ،
"کلمات کلیدی": [
"helloworld" ،
"cnab" ،
"آموزش"
] ،
"نگهدارنده": [
{
"name": " جین Doe "،
" ایمیل ":" [email protected]
" url ":" https://example.com "
}

" invocationImages ": [
{
" imageType ":" docker "،
" image ":" cnab / helloworld: 0.1.1 ،
"contentDigest": "sha256: a59a4e74d9cc89e4e75dfb2cc7ea5c108e4236ba6231b53081a9e2506d1197b6"،
"size": 942،
"mediaType": dv.
]
}

cnab-oci در آخرین نسخه بتا v0.9.0-beta1 با Docker App یکپارچه شده است تا به شما اجازه دهد تمام برنامه خود را با همان UX با فشار دادن یک داکر معمولی بکشید. تصویر ظرف از آنجا که برنامه Docker یک زمان اجرای استاندارد CNAB است ، می تواند این نمونه CNAB عمومی را نیز اجرا کند:

$ docker app pull hubusername / repo: demo
موفقیت "Helloworld" (0.1.1) را از docker.io/hubusername/ بکشید. repo: demo

$ docker app run hubusername / repo: demo
پارامتر پورت روی
تنظیم شد تنظیم عمل
نصب نصب کامل برای upbeat_nobel
برنامه "upbeat_nobel" در حال اجرا بر روی متن "پیش فرض" [

می خواهید اطلاعات بیشتری کسب کنید؟

اگر شما علاقه مند به کسب اطلاعات بیشتر درباره CNAB هستید ، چند پست وبلاگ در دسترس است:

لطفاً توجه داشته باشید که ما در مورد این موضوع در KubeCon Europe 2020 صحبت خواهیم کرد: "به اشتراک گذاری مراقبت است! برنامه Cloud خود را روی یک رجیستری OCI فشار دهید – Silvin Lubecki & Djordje Lukic "

و البته ، می توانید اطلاعات بیشتری را نیز مستقیماً در مخزن cnab-to-oci GitHub بیابید.

مشارکت ها خوش آمدید !!! 🤗

<! –

 آواتار

سیلوین لوبکی

->