روزی روزگاری، محمد از دست گیت‌لب به کفر آمد و تصمیم گرفت تا سرویسی برای شرکت در همین زمینه راه‌اندازی کند ولی به دلیل خستگی زیاد از شما خواسته تا به او در راستای این هدف کمک کنید.

در این تمرین، ما از شما می‌خواهیم یک سرویس gitea را تنظیم و راه‌اندازی کنید. برای دانلود پروژه‌ اولیه روی این لینک کلیک کنید.

جزئیات پروژه

  • سرویس gitea شما باید روی پورت 3000 اجرا شده باشد.
  • دیتای سرویس gitea نباید به هیچ عنوان از بین برود (یعنی اگر به هر دلیلی سرویس ها متوقف شدند، نباید هیچ دیتایی از دست رفته باشد.).
  • اگر سیستم به هر دلیلی با مشکلی مواجه شد، باید سرویس gitea بلافاصله مجددا اجرا شود.
  • پورت ssh سرویس برای محمد اهمیتی ندارد، برای اطمینان می‌توانید از پورت 222 استفاده کنید.
  • باید id کاربر و id گروهی که به دستورات gitea دسترسی دارند برابر با 1000 باشد.
  • نام کانتینری که سرویس gitea را اجرا می‌کند باید برابر با gitea باشد.

نکات تکمیلی

۱. شما تمامی تغییرات خود را درون فایل docker-compose.yml اعمال کنید. شما تنها مجاز به ارسال این فایل خواهید بود و با دستور زیر فایل ارسالی شما درون سیستم داوری اجرا خواهد شد:

docker-compose up --no-build -d
Plain text

پس از اجرای دستور بالا باید تمامی سرویس‌های مورد نظر شما تنظیم و راه‌اندازی و اماده تست کردن باشند.

۲. شما تنها مجاز به استفاده از ایمیج‌های موجود در این لینک هستید و می‌توانید هر تعداد سرویس که نیاز دارید تنظیم و راه‌اندازی کنید تا به خواسته مسئله برسید. توجه داشته باشید که شما مجاز به استفاده از ایمیج‌های دیگر نیستید و فقط می‌تونید از مجموعه ایمیج‌های موجود در همین ایمیج‌رجیستری استفاده کنید.

۳. شما اجازه‌ی build کردن یک Image جدید نخواهید داشت و باید از Imageهای استاندارد کوئرا استفاده کنید. به‌طور خاص، برای gitea می‌توانید از Image با آدرس زیر استفاده کنید:

registry.gitlab.com/qio/standard/gitea:1.16.8
Plain text

۴. در صورت نیاز به دیتابیس، از ایمیج‌های زیر نیز می‌توانید استفاده کنید:

registry.gitlab.com/qio/standard/mysql:8.0
registry.gitlab.com/qio/standard/postgres:14.1
registry.gitlab.com/qio/standard/postgres:14.1-alpine
Plain text

ارسال فایل‌های اضافی

توجه کنید که هر فایل و محتوای دیگری به جز docker-compose.yml که در فایل ارسالی شما قرار داشته باشد حذف خواهد شد.

در صورتی که نیاز دارید که فایلی علاوه‌بر docker-compose.yml به سیستم داوری کوئرا ارسال کرده و در راه‌حل خود از آن‌ها استفاده کنید، می‌توانید از پوشه‌ی data استفاده کنید. برای این کار کافیست که پوشه‌ای به نام data در کنار docker-compose.yml ایجاد کرده و برای سیستم داوری کوئرا ارسال نمایید.

services:
  sample_container:
    volumes:
      - ./data/extrafile:/extrafile
Plain text

فراموش نکنید که در این حالت، فایل extrafile که volume شده است را درون پوشه‌ی data قرار داده و آن را برای سیستم داوری ارسال نمایید. برای مثال، پوشه‌ی ارسالی شما برای داوری کوئرا به شکل زیر می‌تواند باشد:

.
├── data
│   └── extrafile
└── docker-compose.yml
Plain text

توجه: سیستم داوری کوئرا به‌صورت خودکار فایل docker-compose.yml را با کامند up اجرا می‌کند. شما نیازی به کد یا اسکریپتی برای اجرای این کار ندارید.

توجه: استفاده کردن از پوشه‌ی data، کاملاً به خواست شما بوده و ممکن است این سؤال بدون نیاز به استفاده از پوشه‌ی data حل شود.

نحوه ارسال پاسخ

شما تنها مجاز به تغییر در فایل docker-compose.yml هستید و در صورت نیاز در کنار آن می‌توانید پوشه‌ای با نام data نیز قرار داده و ارسال نمایید. تمامی فایل‌ها یا پوشه‌های دیگر حذف خواهند شد!


ارسال پاسخ برای این سؤال
فایلی انتخاب نشده است.