First Docker GitHub Action اینجا است!


ما خوشحال می شویم اعلام کنیم که امروز داکر اولین اقدام Github خود را منتشر کرده است! ما در حال همکاری با GitHub هستیم ، و می بینیم که چگونه توسعه دهندگان از GitHub Actions با Docker برای تنظیم گردش کار CI / CD خود استفاده کرده اند. جریانهای استاندارد که می بینید اگر به اطراف نگاه کنید همان چیزی است که انتظار دارید: ساختن یک تصویر ، برچسب زدن آن ، ورود به هاب و فشار دادن تصویر. این گردش کاری است که ما با هدف ساخت و ساز فشار Docker از آن حمایت کردیم.

ساده سازی جریان کار CI / CD

در Docker به طور سنتی بسیاری از جریان های کاری CI / CD ما از طریق جنکینز با استفاده از محصولات متنوعی انجام می شود. آن را تنظیم و نگهداری کنید. برای بعضی از موارد این بهترین راه حل است مانند زمانی که ما در حال آزمایش Docker Desktop روی انواع مختلفی از میزبان ها و پیکربندی های مختلف هستیم. برای دیگران کمی چاق است. مانند بسیاری ، ما در Docker به دنبال این هستیم که چگونه می توانیم فعالیت های GitHub را برای ساده کردن گردش کار ، از جمله نحوه استفاده از Docker خود ، استفاده کنیم.

عملکردهای GitHub در بسیاری از جریان های کاری خود Docker را افزایش می دهد. از داشتن Docker از پیش نصب شده و پیکربندی شده بر روی دونده های ابری گرفته تا پشتیبانی کلاس اول برای اقدامات کانتینر شده ، به توسعه دهندگان این امکان را می دهد که به راحتی از همان گردش های Docker که بصورت محلی استفاده می کنند برای پیکربندی CI / CD repo خود استفاده کنند. همراه با ساختهای چند مرحله ای و شما یک محیط قدرتمند برای کار با آنها دارید.

اقدامات داکر

هنگامی که ما با اقدامات Github شروع به کار کردیم ، هیچگونه اقدامات داخلی برای کنترل جریان اصلی ، برچسب و فشار جریان اصلی ما وجود ندارد ، بنابراین ما با یک فایل yaml که هنوز نمی تواند محلی اجرا شود ، کامل شد. دستورات bash. در صورتی که الگوی گردش کار "انتشار داکر" را از داخل GitHub انتخاب می کنید ، دقیقاً همان چیزی است که به شما داده می شود. اگرچه مطمئناً قابل انجام است ، خواندن و حفظ آن به آسانی اسکریپتی که فقط از اقدامات از پیش ساخته استفاده می کند ، آسان نیست. به احتمال زیاد به همین دلیل جامعه قبلاً اقدامات کاملی را انجام داده است که دقیقاً همین کار را انجام دهند. فقط به بازار GitHub بروید و اقدامات Docker را جستجو کنید.

چیزهای رایج که می خواهید فراتر از ساخت استاندارد / برچسب / فشار استاندارد باشد ، پشتیبانی از برچسب زدن خودکار تصاویر بر اساس شاخه ای است که از آن ساخته اید ، وارد سیستم شوید. ثبت ها ، و تنظیم آرگومان های استاندارد CLI مانند مسیر Dockerfile.

با نگاهی به تعدادی از این موارد ، تصمیم گرفتیم اقدامات خودمان را از این ایده ها بسازیم و آنها را به عنوان رسمی Docker از انجمن پشتیبانی کنیم. اقدامات GitHub. اولین مورد از اینها ، docker / build-push-action ، بسیاری از آنچه در بالا نوشته شده است پشتیبانی می کند و تلاش می کند تصاویر را با استفاده از بهترین شیوه ها ، از جمله:

  • ساخت و فشار بکشد ، از جمله:

    • برچسب زدن بر اساس رعایت git (شاخه ها ،
    • برچسب زدن با git SHA برای گرفتن آسان تصویر در مراحل بعدی جریان های پیچیده تر CI / CD. به عنوان مثال در جاهایی که باید آزمایشات پایان به انتها را در یک خوشه بزرگ و میزبان خود انجام دهید.
    • برچسب زدن تصویر با برچسب های Initiative Open Container با استفاده از داده هایی که از محیط اقدامات GitHub گرفته شده است.
    • پشتیبانی از استدلال زمان ساخت و اهداف چند مرحله ای.
    • فشاری را فشار دهید که به شما امکان می دهد بسته به هر یک از داده های تهیه شده توسط اقدامات GitHub و اسکریپت های شخصی خود ، پیکربندی کنید که فقط در هنگام ساخت تصویر چه زمانی انجام می شود. مثالهایی را برای یک مورد استفاده خود مشاهده کنید.

    یک رویکرد واحد عمل

    اما چرا یک عمل بزرگ به جای بسیاری از اقدامات کوچک؟ نکته ای که در بحث ما با GitHub مطرح شد این است که چگونه آنها پیش بینی کرده بودند که کاربران بسیاری از اقدامات کوچک ایجاد کرده و آنها را با استفاده از ورودی ها و خروجی ها به هم متصل کنند ، اما واقعیت برعکس است. از آنچه ما کاربران دیده بودیم اقدامات بزرگ ایجاد کرده اند و جریان داخلی را با استفاده از ورودی هایی برای جزئیات پیکربندی به کار می گیرند.

    در حین توسعه اقدامات خود ، ما خودمان را به همان روش پیش می بریم ، اولا به این دلیل که آزمایش کردن آن روش به سادگی آسان تر است زیرا در حال حاضر هیچ راهی برای اجرای اسکریپت گردش کار به صورت محلی نیست.

    همچنین این:

    نام : ساخت
    id : ساخت [19659019] از استفاده می کند: docker / build-action @ v1
    با ::
    مخزن : myorg ] tags : v1
    name : login
    از : docker / action
    با :
    رجیستری : myregistry
    نام کاربری : $ { DOCKER_USERNAME}
    رمز عبور : $ {{DOCKER_USERNAME}}
    name : فشار فشار فشار : docker / push-action @ v1
    with :
    رجیستری : myregistry
    tags ] $ {p outputs.build.tags}}

    تلاش کمی بیشتر برای نوشتن است از:

    name : build-push
    استفاده از : docker / build -push-action @ v1
    با :
    نام کاربری : $ {{DOCKER_USERNAME}}
    ] $ {{DOCKER_USERNAME}}
    رجیستری : myregistry
    مخزن : myorg / myrepo
    ] tag v1

    دلیل نهایی که ما با رویکرد اقدام واحد رفتیم این بود که منطق چگونگی پیوند مراحل جداگانه و هنگامی که آنها باید رد می شوند ، ساده است که بتواند در پس زمینه مبتنی بر صرفاً بر روی چند ورودی باشد. . آیا نام کاربری و رمز عبور تنظیم شده است؟ سپس وارد شوید آیا باید فشار بیاوریم؟ سپس با برچسب هایی که ساختیم با آن فشار دهید. آیا رجیستری تنظیم شده است؟ سپس به آن رجیستری وارد شوید ، تصاویر را با آن رجیستری برچسب گذاری کنید و به جای آنکه به طور پیش فرض به Docker Hub بپیوندید ، فشار دهید.

    بازخورد خوش آمدید!

    همه این کارها با تصویری انجام می شود که پشتیبان عمل است. باطن یک برنامه برو ساده است که به Docker CLI پوسته می شود ، کدی که می توانید در اینجا پیدا کنید و با استفاده از اکشن ساخته شده و تحت فشار قرار می گیرد. مانند همیشه ، بازخورد ها و مشارکت های همیشه خوش آمدید .

    اگر می خواهید Docker Github Action را امتحان کنید ، می توانید آن را در اینجا بیابید یا اگر قبلاً از اقدامات Github استفاده نکرده اید ، می توانید راهنمایی برای پیدا کنید. اینجا را با گیتوب شروع کنید. برای کسب اطلاعات بیشتر در مورد آنچه که انتظار می رود به زودی از داکر به یاد داشته باشید به نقشه راه عمومی ما نگاه کنید

<! –

 آواتار

نیکلاس آدکوک

-> [19659049]