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