روزی روزگاری، محمد از دست گیتلب به کفر آمد و تصمیم گرفت تا سرویسی برای شرکت در همین زمینه راهاندازی کند ولی به دلیل خستگی زیاد از شما خواسته تا به او در راستای این هدف کمک کنید.
در این تمرین، ما از شما میخواهیم یک سرویس gitea را تنظیم و راهاندازی کنید. برای دانلود پروژه اولیه روی این لینک کلیک کنید.
جزئیات پروژه
- سرویس
giteaشما باید روی پورت3000اجرا شده باشد. - دیتای سرویس
giteaنباید به هیچ عنوان از بین برود (یعنی اگر به هر دلیلی سرویس ها متوقف شدند، نباید هیچ دیتایی از دست رفته باشد.). - اگر سیستم به هر دلیلی با مشکلی مواجه شد، باید سرویس
giteaبلافاصله مجددا اجرا شود. - پورت
sshسرویس برای محمد اهمیتی ندارد، برای اطمینان میتوانید از پورت222استفاده کنید. - باید id کاربر و id گروهی که به دستورات
giteaدسترسی دارند برابر با1000باشد. - نام کانتینری که سرویس
giteaرا اجرا میکند باید برابر باgiteaباشد.
نکات تکمیلی
۱. شما تمامی تغییرات خود را درون فایل docker-compose.yml اعمال کنید. شما تنها مجاز به ارسال این فایل خواهید بود و با دستور زیر فایل ارسالی شما درون سیستم داوری اجرا خواهد شد:
docker-compose up --no-build -d
پس از اجرای دستور بالا باید تمامی سرویسهای مورد نظر شما تنظیم و راهاندازی و اماده تست کردن باشند.
۲. شما تنها مجاز به استفاده از ایمیجهای موجود در این لینک هستید و میتوانید هر تعداد سرویس که نیاز دارید تنظیم و راهاندازی کنید تا به خواسته مسئله برسید. توجه داشته باشید که شما مجاز به استفاده از ایمیجهای دیگر نیستید و فقط میتونید از مجموعه ایمیجهای موجود در همین ایمیجرجیستری استفاده کنید.
۳. شما اجازهی build کردن یک Image جدید نخواهید داشت و باید از Imageهای استاندارد کوئرا استفاده کنید. بهطور خاص، برای gitea میتوانید از Image با آدرس زیر استفاده کنید:
ghcr.io/qregistry/standard/gitea:1.16.8
۴. در صورت نیاز به دیتابیس، از ایمیجهای زیر نیز میتوانید استفاده کنید:
ghcr.io/qregistry/standard/mysql:8.0
ghcr.io/qregistry/standard/postgres:14.1
ghcr.io/qregistry/standard/postgres:14.1-alpine
ارسال فایلهای اضافی
توجه کنید که هر فایل و محتوای دیگری به جز docker-compose.yml که در فایل ارسالی شما قرار داشته باشد حذف خواهد شد.
در صورتی که نیاز دارید که فایلی علاوهبر docker-compose.yml به سیستم داوری کوئرا ارسال کرده و در راهحل خود از آنها استفاده کنید، میتوانید از پوشهی data استفاده کنید. برای این کار کافیست که پوشهای به نام data در کنار docker-compose.yml ایجاد کرده و برای سیستم داوری کوئرا ارسال نمایید.
services:
sample_container:
volumes:
- ./data/extrafile:/extrafile
فراموش نکنید که در این حالت، فایل extrafile که volume شده است را درون پوشهی data قرار داده و آن را برای سیستم داوری ارسال نمایید. برای مثال، پوشهی ارسالی شما برای داوری کوئرا به شکل زیر میتواند باشد:
.
├── data
│ └── extrafile
└── docker-compose.yml
توجه: سیستم داوری کوئرا بهصورت خودکار فایل docker-compose.yml را با کامند up اجرا میکند. شما نیازی به کد یا اسکریپتی برای اجرای این کار ندارید.
توجه: استفاده کردن از پوشهی data، کاملاً به خواست شما بوده و ممکن است این سؤال بدون نیاز به استفاده از پوشهی data حل شود.
نحوه ارسال پاسخ
شما تنها مجاز به تغییر در فایل docker-compose.yml هستید و در صورت نیاز در کنار آن میتوانید پوشهای با نام data نیز قرار داده و ارسال نمایید. تمامی فایلها یا پوشههای دیگر حذف خواهند شد!
ارسال پاسخ برای این سؤال