اجرای TestRail داخل کانتینرهای Docker #
لطفاً Readme موجود در repo گیتهاب را ببینید.
TestRail از docker-compose برای اجرای سرویسهای موردنیاز و اتصال کانتینرها به یکدیگر استفاده میکند.
برای راهاندازی یا متوقف کردن TestRail، این دو command کافی است. آنها را در پوشه root repo اجرا کنید:
docker-compose up
docker-compose down
برای راهاندازی کانتینرها در detached mode، کافی است پارامتر -d را اضافه کنید: docker-compose up -d
فایلهای docker-compose چند متغیر با مقدار پیشفرض از قبل تعیینشده دارند. برای تنظیم مقدارهای دلخواه برای این متغیرها، یک فایل .env بسازید، همانطور که در مستندات فایلهای env در Docker توضیح داده شده است. این یک فایل متنی ساده با ساختار VAR=VALUE است.
همچنین میتوانید env variableها را از طریق command line و با دستور export تعریف کنید. HTTP_PORT=8008 && docker-compose up -d.
سایت linuxhint.com نمای کلی خوبی از نحوه استفاده از env variableها در bash ارائه میدهد.
مهاجرت از یک نصب فعلی TestRail Server به کانتینرها #
استفاده از database داخل کانتینرها #
اگر یک DB اختصاصی فقط برای TestRail اجرا کردهاید، منطقی است که DB را هم داخل یک کانتینر اجرا کنید. برای upgrade این مراحل را دنبال کنید:
-
قبل از مهاجرت، privilegeهای user در mysql را بررسی کنید. اگر user با ’@localhost’ ساخته شده باشد، یعنی دسترسی فقط از localhost مجاز است؛ در این حالت باید یک user جدید با دسترسی کافی برای connectionهای remote بسازید:
- با این دستور به DB وصل شوید:
mysql -pو همه userها و hostهای آنها را فهرست کنید:SELECT user, host FROM mysql.user; - اگر user مربوط به TestRail در ستون host مقدار «localhost» یا یک IP مشخص دارد و مقدار آن «%» نیست، باید یک user جدید بسازید: CREATE USER ‘testraildocker’@’%’ IDENTIFIED BY ‘newpassword’; >
GRANT ALL ON testrail.* TO 'testraildocker'@'%';
علامت «%» اجازه میدهد از هر IP ارتباط remote برقرار شود. اگر docker subnet خود را میدانید، که معمولاً ۱۷۲.۱۶.۲۵۵.۲۵۵ است، برای سختتر کردن تنظیمات امنیتی بهجای «%» از همان subnet داخلی Docker استفاده کنید.
- با این دستور به DB وصل شوید:
- کل محتوای
/var/lib/mysqlرا در_mysqlپوشه کپی کنید وconfig.phpفایل را در_configکپی کنید. - اگر میخواهید attachmentها، reportها، logها و audit logها را نگه دارید، پوشههای
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 از یک port مشخص استفاده کنید، یک فایل .env بسازید (توضیحات بیشتر اینجا آمده است) و port را از این طریق مشخص کنید:
HTTP_PORT=<portNumber> - اجرا کنید:
docker-compose up -d
تمام شد؛ کار شما انجام شد!
#
همچنین مسیرهای مربوط به attachmentها و reportها زیر TestRail > Administration > Site Settings به: /opt/testrail/attachments و /opt/testrail/reports
استفاده از database خارجی #
اگر از database خارجی استفاده میکنید، 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 از port مشخصی استفاده کنید، یک فایل .env ایجاد کنید (جزئیات بیشتر در اینجا آمده است) و port را با HTTP_PORT= مشخص کنید.<portNumber>
- اجرا کنید
docker-compose up -d
تمام؛ کار به پایان رسید!
#
همچنین مسیرهای attachments و reports را در بخش TestRail>Administration>Site Settings به این موارد تغییر دهید: /opt/testrail/attachments و /opt/testrail/reports
ارتقای TestRail وقتی از قبل از container استفاده میکنید #
گزینه ۱: سریع و ساده #
کافی است از upgrade script استفاده کنید: upgradeTestRail.sh
اگر با configuration پیشفرض ساختهشده توسط quickstart script کار کرده باشید، این کار TestRail را ارتقا میدهد. اگر برای DB files و موارد مشابه از locationهای سفارشی استفاده میکنید، از گزینه ۲ در ادامه استفاده کنید.
گزینه ۲: انجام upgrade بهصورت مرحلهبهمرحله #
برای ارتقای TestRail از یک نسخه قدیمیتر به نسخه جدیدتر، مثلاً از ۶.۰.۰ به ۶.۰.۱، مراحل زیر را انجام دهید:
- کانتینرها را متوقف کنید:
docker-compose down -v - (اختیاری) اگر نسخه مشخصی از TestRail را مثلا در یک
.envفایل تعیین کردهاید، نسخهای را که میخواهید به آن upgrade کنید تنظیم کنید. - imageها را pull کنید:
docker-compose pull - توصیه میشود: backup تهیه کنید (بخش زیر را ببینید)
- TestRail را راهاندازی کنید
docker-compose up -d
مهم #
از پوشههایی که شامل database هستند و همچنین از پوشهای که logها، reportها، attachmentها و auditها را نگه میدارد backup تهیه کنید. بهطور پیشفرض، این پوشهها عبارتاند از _mysql و _opt در directory محلی. همچنین یک کپی از config.php فایلهای موجود در _config.
همچنین میتوانید یک upgrade امنتر انجام دهید؛ به این صورت که این سه پوشه را در مسیر جدیدی کپی کنید و سپس 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های مربوطه آمده است.
#
اگر از نسخه ۷.۰ به ۷.۴ یا بالاتر upgrade میکنید، باید migration script را طبق مستندات این بخش اجرا کنید: ارتقای TestRail. ترتیب پیشنهادی برای ارتقای TestRail به این صورت است:
-
Cassandra را نصب و پیکربندی کنید
-
TestRail را نصب کنید یا ارتقا دهید
-
migration script مخصوص انتقال از نسخه ۷.۰ یا قدیمیتر به نسخه ۷.۴ یا جدیدتر را اجرا کنید

