یک اسکریپت bash بنویسید که از یک Dockerfile ایمیج بسازد، آن را با هش commit فعلی گیت تگ کند، کانتینر قبلی را متوقف و پاک کند و کانتینر جدید را با تگ ساخته‌شده اجرا نماید.

4.0 بازدید آخرین ویرایش در 221 روز قبل ساعت 01:42

0.0

برای حل این مسئله در اسکریپت ابتدا وجود دستورهای موردنیاز (docker و git) را بررسی کنید، سپس با git rev-parse --short HEAD هش commit فعلی را بگیرید و از آن برای تگ زدن ایمیج استفاده کنید (مثلاً docker build -t myapp:COMMIT_HASH .). پیش از اجرای کانتینر جدید، کانتینر جاری را با docker ps و docker stop/ docker rm متوقف و حذف کنید، و نهایتاً با docker run -d --name myapp myapp:COMMIT_HASH آن را اجرا نمایید. نکات مفید: از set -e برای خروج در صورت خطا استفاده کنید، پیام‌های معنی‌دار چاپ کنید و برای توسعه می‌توانید پورت و ولوم‌ها را به docker run اضافه کنید یا به جای دستورات دستی از docker-compose برای مدیریت سرویس‌ها بهره ببرید.

توسط پژوهشگر در 221 روز قبل ساعت 01:42
دسته بندی ها: Bash Scripting Bash Scripting for beginner
arash در 221 روز قبل ساعت 12:17

این اسکریپت با فرض وجود docker و git کار می‌کند و باید از set -e استفاده شود تا در صورت خطا خارج شود. بهتر است بررسی کنید که در یک مخزن git هستید و HEAD قابل استخراج است، و در صورت نبود hash، ارور کارا بدهید. برای کار با کانتینرهای قبلی، مطمئن شوید نام کانتینر یکتا باشد یا از --rm استفاده کنید تا پس از توقف حذف شود. همچنین ممکن است بخواهید از docker-compose یا docker run با گزینه‌های پورت/ولوم استفاده کنید تا قابل توسعه باشد.

گزارش

1 پاسخ

جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من

در حال بارگیری...
ورود به حساب کاربری