روش حل مشکل services.nginx-mailcow.ports is invalid: Invalid port “:443:443”
یکی از نرمافزارهای محبوب برای نصب میل سرور و استفاده از یک webmail شخصی mailcow است، در این نوشته به بررسی مشکل
services.nginx-mailcow.ports is invalid: Invalid port “:443:443”, should be [[remote_ip:]remote_port[-remote_port]:]port[/protocol] services.nginx-mailcow.ports is invalid: Invalid port “:80:80”, should be [[remote_ip:]remote_port[-remote_port]:]port[/protocol]
میپردازیم.
روش حل مشکل services.nginx-mailcow.ports is invalid: Invalid port “:443:443”
ابتدا به مسیر نصب mailcow بروید و قبل از اجرای دستور docker-compose up -d فایل mailcow.conf را با vim یا nano ویرایش کنید و سپس خطهای زیر را مانند کد زیر تغییر دهید:
HTTP_PORT=80 HTTP_BIND=0.0.0.0 HTTPS_PORT=443 HTTPS_BIND=0.0.0.0
بعد از ذخیرهی فایل mailcow.conf دستور docker-compose up -d را اجرا کنید و mailserver خود را به صورت سالم اجرا کنید.
اگر مشکلتان با روش بالا حل نشد در بخش نظرات همین نوشته برای ما بنویسید.



















این خطا توی همه سیستمعاملها میاد؟
این خطا معمولاً در سیستمعاملهای مبتنی بر لینوکس که از Docker استفاده میکنند (مانند Ubuntu, Debian, CentOS) رخ میدهد. این خطا بیشتر مربوط به نحوه تفسیر آرگومانهای پورت در فایل docker-compose.yml توسط Docker Compose است.
این خطا ممکنه بخاطر تداخل با سرویس nginx دیگهای روی سیستم هم باشه؟
خیر، این خطا مستقیماً به تداخل پورتها مربوط نیست. خطای services.nginx-mailcow.ports is invalid یک خطای نحوی (Syntax Error) در فایل docker-compose.yml است و به دلیل نحوه اشتباهی است که پورت ۴۴۳ در آن تعریف شده است.
مرسی بابت آموزش
موفق باشین
اگه پورتهای دیگهای به جای 80 و 443 بخوایم استفاده کنیم همینطوری باید تغییر بدیم؟
بله، اگر میخواهید پورتهای دیگری غیر از ۸۰ و ۴۴۳ را برای Nginx Mailcow استفاده کنید، باید همانند راهحل ارائه شده، سینتکس پورت را در فایل docker-compose.yml به شکل HOST_PORT:CONTAINER_PORT (مثلاً 8080:80) اصلاح کنید.
این مشکل بیشتر توی ورژن جدید docker-compose پیش میاد یا قدیمیها هم دارن؟
این مشکل به دلیل قوانین سختگیرانهتر نحوی در نسخههای جدیدتر docker-compose (یا استفاده از Docker Compose v2) رخ میدهد که در آن، فرمت کوتاه HOST:CONTAINER بدون مشخص کردن نوع پروتکل، دیگر پشتیبانی نمیشود.