TestRail را میتوانید با استفاده از containerهای Docker نصب کنید تا راهاندازی و اجرای آن سادهتر شود. این روش همه dependencyها و فایلهای مورد نیاز TestRail را شامل میشود و زمان نصب را به حداقل میرساند.
repository مربوط به Docker برای TestRail #
پکیج zip مربوط به Docker برای TestRail
همچنین میتوانید همه فایلها را از TestRail Docker GitHub Repo
نیازمندیها #
این نیازمندیها برای همه نسخههای TestRail از ۹.۴.۱ تا ۱۰.۴.۱ کاربرد دارد.
-
Docker را نصب کنید + Docker Compose (در Linux، استفاده از
pipتوصیه میشود) -
آشنایی پایه با Docker (مثلاً بدانید container، image، detached mode و موارد مشابه چه هستند) ← مستندات رسمی Docker «Get Started» را ببینید
-
اختیاری: اگر از
quickstart.shscript استفاده میکنید، این موارد را هم نصب کنید:sudoوip(معمولاً روی بیشتر سیستمها از قبل نصب شدهاند)
ℹ️ نکته مهم:
از TestRail ۹.۵.۱ Server به بعد، Cassandra رسماً deprecated شده و این محدودیت اعمال میشود.
-
adminها باید ابتدا Cassandra deprecation script را در نسخه ۹.۴.۱ قبل از ارتقا به نسخههای جدیدتر اجرا کنند.
-
اگر این script اجرا نشده باشد، ارتقا به نسخههای جدیدتر مسدود میشود و یک پیام هشدار نمایش داده میشود
در طول فرایند ارتقا.👉 لطفاً
مستندات Cassandra Deprecation
را ببینید.
شروع سریع با script #
این مراحل را دنبال کنید:
-
اجرا کنید
quickstart.sh - دو رمز عبور وارد کنید؛ یکی برای کاربر عادی database و یکی برای root.
- چند لحظه صبر کنید تا TestRail دانلود و راهاندازی شود.
TestRail باید از طریق URL زیر در دسترس باشد: http://localhost:۸۰۰۰
نصب را از طریق web UI کامل کنید (از مقادیری که installer در پایان نمایش میدهد استفاده کنید).
بعد از ورود به installation wizard،
باید مسیر زیر را برای Chrome Headless Shell وارد کنید:
-
/usr/bin/chrome-headless-shell-linux64/chrome-headless-shell
پیکربندی token مربوط به Jira را بهروزرسانی کنید (برای نسخههای قبل از ۱۰.۱.۴ الزامی است)
#
اگر از نسخهای قدیمیتر از 10.1.4 ارتقا میدهید، باید در این فرایند فایل پیکربندی token مربوط به Jira را بهروزرسانی کنید.
- فایلهای update را دانلود کنید اینجا.
-
فایلها را بهروزرسانی کنید:
-
نام container مربوط به TestRail Server را پیدا کنید؛ برای مثال
testrail-docker-srv -
دستور زیر را اجرا کنید تا فایل جدید را کپی کنید
consts.php
وارد container کنید.docker cp patches/testrail-<version>/testrail/app/config/consts.php testrail-docker-srv:/var/www/testrail/app/config -
مالکیت درست فایل را تنظیم کنید.
docker exec -it testrail-docker-srv \ chown www-data:www-data /var/www/testrail/app/config/consts.php
-
نام container مربوط به TestRail Server را پیدا کنید؛ برای مثال
اجرای TestRail با docker-compose #
فایل compose از طریق environment variableها پیکربندی میشود؛ پیشنهاد میشود از یک فایل .env استفاده کنید. اطلاعات بیشتر درباره فایل .env در
مستندات Docker env files موجود است.
-
ابتدا یک فایل .env بسازید که حداقل شامل variableهای الزامی زیر باشد:
- DB_USER
- DB_NAME
- DB_PWD
- DB_ROOT_PWD
-
سپس اجرا کنید
docker-compose up
(در اولین اجرا چند دقیقه طول میکشد). - TestRail باید اجرا شده باشد. از این آدرس به آن دسترسی پیدا کنید: http://localhost:۸۰۰۰
- وقتی installer مربوط به TestRail تنظیمات database را درخواست کرد، همان مقادیری را که در فایل .env مشخص کردهاید دوباره وارد کنید.
-
برای حذف instance، کلیدهای Ctrl+C را فشار دهید و سپس اجرا کنید
docker-compose down.
Environment variableها #
پیشنهاد میشود یک فایل .env محلی بسازید تا variableهای مخصوص کاربر یا machine را در آن مشخص کنید (برای اطلاعات بیشتر، به مستندات Docker env files مراجعه کنید). syntax ساده است؛ برای مثال: HTTP_PORT=۸۰۰۰
Environment variableها را میتوان با همین syntax مستقیماً در shell هم تنظیم کرد و سپس از docker-compose.
- DB_PORT
- HTTP_PORT
- HTTPS_PORT
- DB_URL (مثلاً http://internal.yourcompany.com/۵.۷.sql)
پایگاهدادههای از پیش آمادهشده و فایل config.php در TestRail #
با استفاده از DB_URL variable ، میتوانید یک SQL dump هم ارائه کنید تا container آن را دانلود کند و TestRail از قبل پیکربندی شده باشد. برای عملکرد درست، config.php باید فایل مربوطه را ارائه کنید. کافی است آن را در _config کپی کنید. مطمئن شوید مقادیر موجود در config.php با تنظیمات database برای user و password که در compose file مربوط به db مشخص شدهاند، مطابقت داشته باشد.
استفاده از فایلهای Compose #
استفاده عمومی #
docker-compose up
docker-compose down
آرگومان up container را اجرا میکند؛ در حالی که down همهچیز را متوقف میکند. docker-compose مرجع CLI را میتوانید اینجا ببینید.
گزینههای مفید دیگر: #
| گزینه | توضیح |
|---|---|
-v (حذف volumeهای نامگذاریشده)
|
این گزینه برای حذف volumeهای موقت بعد از shutdown مهم است و استفاده از آن توصیه میشود. اگر نمیخواهید volumeها پاک شوند، از این پارامتر استفاده نکنید. با این حال، توجه داشته باشید که استفاده نکردن از آن همچنان ممکن است باعث برخی اثرات جانبی شود. |
-f (فایل)
|
برای مشخص کردن یک compose file متفاوت استفاده میشود. بهصورت پیشفرض docker-compose.yml استفاده میشود. |
-p (project)
|
اگر قرار است چند instance از TestRail اجرا شود، این گزینه لازم است. در غیر این صورت، docker-compose با container در حال اجرا تعامل خواهد داشت.
|
نام پوشهای که docker-compose در آن اجرا میشود (در این مثال، «internal-docker») بهعنوان project name استفاده میشود و به ابتدای نام همه containerهای ایجادشده اضافه میشود.
توصیه: استفاده کنید از docker-compose down -v ، چون volumeهای نامگذاریشده و ناشناس را حذف میکند.
نکات کلی درباره فایلهای Compose #
- همه فایلهای Compose به volumeهای اضافه وابسته هستند:
-
testrail_rootشامل فایلهای نصب است و در مسیر زیر mount میشود:/var/www/testrail -
testrail_optشامل فایلهای آپلودشده و موارد مشابه است و در مسیر زیر mount میشود:/opt/testrail -
testrail_dbشامل database است و در مسیر زیر mount میشود:/var/lib/mysql. -
testrail_configحاوی فایل config.php است؛ این فایل TestRail را پیکربندی میکند و در مسیر مربوطه mount میشود/var/www/testrail/config
کانتینرها از طریق یک testrail شبکه bridged به هم متصل میشوند. ترتیب شروع مهم است: اول php باید اجرا شود و بعد webserver و DB.
انتقال & ارتقای TestRail #
اجرای TestRail داخل کانتینرهای Docker #
لطفاً Readme موجود در GitHub repo را ببینید.
TestRail از docker-compose برای اجرای سرویسهای موردنیاز و اتصال کانتینرها به یکدیگر استفاده میکند.
برای شروع یا توقف TestRail، این دو command کافی هستند. آنها را در پوشه root repo اجرا کنید:
docker-compose up
docker-compose down
برای اجرای کانتینرها در detached mode، کافی است پارامتر -d را اضافه کنید: docker-compose up -d
فایلهای docker-compose چند متغیر با مقادیر default از پیش تعیینشده دارند. برای تعیین مقدارهای دلخواه برای این متغیرها، یک فایل .env بسازید (همانطور که در
مستندات فایلهای env در Docker توضیح داده شده است؛ .env یک فایل متنی ساده با ساختار VAR=VALUE است).
در غیر این صورت، میتوانید env variables را از طریق command line هم تنظیم کنید؛ مثلاً با export HTTP_PORT=8008 && docker-compose up -d.
سایت
linuxhint.com راهنمای خوبی درباره استفاده از env variables در bash ارائه میکند.
انتقال از یک نصب موجود TestRail Server به کانتینرها
#
استفاده از database داخل کانتینرها #
اگر یک DB اختصاصی را فقط برای TestRail اجرا کردهاید، منطقی است که DB را هم داخل یک کانتینر اجرا کنید. برای upgrade، این مراحل را دنبال کنید:
-
قبل از migration، privileges کاربر MySQL را بررسی کنید. اگر کاربری با ‘@localhost’ ساخته شده باشد (یعنی دسترسی فقط از localhost مجاز باشد)، باید user جدیدی با دسترسی کافی برای remote connections بسازید:
-
با دستور
mysql -pبه DB وصل شوید و همه userها و host آنها را فهرست کنید:SELECT user, host FROM mysql.user; -
اگر کاربر TestRail در ستون host مقدار localhost یا یک IP مشخص داشته باشد (و مقدار آن % نباشد)، باید user جدیدی ایجاد کنید: CREATE USER ‘testraildocker’@’%’ IDENTIFIED BY ‘newpassword’; >
GRANT ALL ON testrail.* TO 'testraildocker'@'%';
(% اتصال remote از هر IP را مجاز میکند. اگر subnet مربوط به Docker خود را میدانید – معمولاً ۱۷۲.۱۶.۲۵۵.۲۵۵ – برای افزایش امنیت، به جای % از همان subnet داخلی Docker استفاده کنید.)
-
با دستور
-
کل محتوای
/var/lib/mysqlرا به پوشه_mysqlکپی کنید و فایلconfig.phpرا به_configکپی کنید. -
اگر میخواهید attachments، reports، logs و audit logs را حفظ کنید، پوشههای
logs, audit, reports, attachmentsرا در پوشه_optایجاد کنید و محتوای محل قبلی را به پوشههای تازهساختهشده کپی کنید. -
فایل
config.phpرا ویرایش کنید و مقدار DB_HOSTNAME را بهdb:3306تغییر دهید. همچنین مقدارهای LOG_PATH و AUDIT_PATH را به این موارد تغییر دهید:define('LOG_PATH', '/opt/testrail/logs/'); define('AUDIT_PATH', '/opt/testrail/audit/'); -
اگر میخواهید برای دسترسی به TestRail از پورت مشخصی استفاده کنید، یک فایل .env بسازید (اطلاعات بیشتر در اینجا) و پورت را از طریق
HTTP_PORT=<portNumber> -
دستور زیر را اجرا کنید:
docker-compose up -d
همچنین مسیرهای attachments و reports را در بخش TestRail > Administration > Site Settings به این موارد تغییر دهید: /opt/testrail/attachments و /opt/testrail/reports
استفاده از دیتابیس خارجی #
اگر از یک سرور دیتابیس خارجی استفاده میکنید،
DB server را همانطور که هست بگذارید و این مراحل را دنبال کنید:
-
فایل
config.phpرا
در مسیر زیر کپی کنید_config. -
اگر میخواهید attachments، reports، logs و audit logs را نگه دارید،
پوشههای زیر را ایجاد کنیدlogs،audit،reports،
وattachmentsدر_opt folder،
و محتوا را از محل قبلی به پوشههای تازه ایجادشده کپی کنید. -
در فایل config.php مقدارهای LOG_PATH و AUDIT_PATH را به موارد زیر تغییر دهید:
define('LOG_PATH', '/opt/testrail/logs/'); define('AUDIT_PATH', '/opt/testrail/audit/'); -
اگر میخواهید برای دسترسی به TestRail از پورت مشخصی استفاده کنید، یک فایل
.env
بسازید
(اطلاعات بیشتر اینجا) و پورت را با HTTP_PORT= مشخص کنید<portNumber> -
اجرا کنید
docker-compose up -d
همچنین مسیرهای attachments و reports را در بخش TestRail>Administration>Site Settings به این موارد تغییر دهید: /opt/testrail/attachments و /opt/testrail/reports
ارتقای TestRail وقتی از قبل از containers استفاده میکنید #
گزینه ۱: روش سریع و ساده #
کافی است از upgrade script استفاده کنید: upgradeTestRail.sh
اگر همان تنظیمات پیشفرض ساختهشده توسط اسکریپت quickstart را نگه داشته باشید، این کار TestRail را ارتقا میدهد. سپس باید مراحل زیر را انجام دهید:
-
کانتینر Docker مربوط به Apache را با اجرای دستور زیر پیدا کنید:
docker ps -
کپی کنید
CONTAINER IDبرای
testrail/apacheimage -
اجرا کنید
docker exec -it <container_id>برای ورود به کانتینر Docker، bash را اجرا کنید -
به مسیر زیر بروید:
/var/www/testrailدایرکتوری -
اجرا کنید
php run.php update
اگر برای فایلهای DB و موارد مشابه از مسیرهای سفارشی استفاده میکنید، از گزینه ۲ در ادامه استفاده کنید.
گزینه ۲: انجام ارتقا بهصورت مرحلهبهمرحله #
برای ارتقای TestRail از یک نسخه قدیمیتر به نسخهای جدیدتر، مثلا از ۶.۰.۰ به ۶.۰.۱، مراحل زیر را انجام دهید:
-
کانتینرها را متوقف کنید:
docker-compose down -v -
اختیاری: اگر نسخه مشخصی از TestRail را، مثلا در یک
.envفایل تعیین کردهاید، نسخهای را تنظیم کنید که میخواهید به آن ارتقا دهید. -
imageها را pull کنید:
docker-compose pull - توصیه میشود: backup تهیه کنید؛ بخش زیر را ببینید
-
TestRail را راهاندازی کنید
docker-compose up -d -
کانتینر Docker مربوط به Apache را با اجرای دستور زیر پیدا کنید:
docker ps -
کپی کنید
CONTAINER IDبرای
testrail/apacheimage -
اجرا کنید
docker exec -it <container_id>برای ورود به کانتینر Docker، bash را اجرا کنید -
به مسیر زیر بروید:
/var/www/testrailدایرکتوری -
اجرا کنید
php run.php update
مهم #
از پوشههای شامل database و همچنین پوشهای که logها، reportها، attachmentها و auditها را در خود نگه میدارد backup تهیه کنید. بهصورت پیشفرض، این پوشهها _mysql و _opt در دایرکتوری local قرار دارند. همچنین یک کپی از config.php فایلهای موجود در _config.
همچنین میتوانید با کپی کردن این سه پوشه در یک مسیر جدید و سپس اجرای docker-compose.
موضوعات پیشرفته #
Apache در مقایسه با nginx و MySQL در مقایسه با MariaDB #
TestRail در حال حاضر بهصورت رسمی از Apache + MySQL پشتیبانی میکند. میتوانید nginx و MariaDB را هم امتحان کنید؛ اما توجه داشته باشید که این ترکیب بهصورت رسمی پشتیبانی نمیشود. اگر در کار با این دو سیستم با مشکلی مواجه شدید، لطفا به ما اطلاع دهید تا بتوانیم برای پشتیبانی احتمالی از nginx/MariaDB در آینده ارزیابی دقیقتری داشته باشیم.
تهیه backup #
همه containerها stateless هستند، بنابراین میتوانید آنها را با اطمینان حذف کنید. دادههای مرتبط در volumeهای محلی ذخیره میشوند؛ بهطور پیشفرض در _config ، _mysql ،
و _opt. کافی است از این پوشهها backup بگیرید.
متغیرهای محیطی #
- TESTRAIL_VERSION
- OPT_PATH
- CONFIG_PATH
- MYSQL_PATH
- HTTP_PORT
- DB_PORT
- DB_URL
- DB_USER
- DB_PWD
- DB_NAME
- DB_ROOT_PWD
- TR_DEFAULT_TASK_EXECUTION
ساخت imageها توسط خودتان #
امکان ساخت Docker imageها توسط خودتان هم وجود دارد. همه Dockerfileها در این پوشه.
دستورالعملهای build در subfolderهای مربوطه قرار دارند.

