عدم دسترسی به کانتینر داکر در مرورگر - mac

docker
macos

#21

کاملتر کردم جوابو


#22

تنها پورتی که برای کانتینر نیاز هست منتشر بشه ۸۰ و ۴۴۳ هست . چون داخل کانتینر nginx هست و اون کار پروکسی معکوس رو انجام میده . تنها مشکل عدم نداشتن ارتباط داکر از داخل داکر ماشین به بیرون هاست هست . اونم باید به خاطر نداشتن ip روی داکر ماشین باشه

این مورد رو گفته بودم فردا تست میکنم . ببینم نتیجه به چه صورت میشه . اطلاع میدم :sweat_smile:


#23
localserver:
    ports:
        - "80:80"

#24

فکر میکنم در مورد ports یکمی دچار سو تفاهم شدین، بلاخره با بازجویی کردن شما جواب رو گرفتم، اگر proxy وجود داره و reverse proxy هم دارید احتمال داره proxy و reverse proxy با هم خوب مچ نشده باشند.
کلا در مورد شما هیچ پورتی از localserver نباید publish بشه، اما سعی کنید به صورت explicit پورت ها رو expose کنید.
Publish و Exposr با هم فرق دارند.

در ضمن version هم حتما در بالای فایل docker-compose قید کنید که در سیستم های مختلف نتیجه متفاوت نداشته باشید

version: "3.7"

و expose

localserver:
    expose:
       - "80"
و غیره

پس دیگه لازم نیست از ports استفاده کنید.


#25

من توی پست های قبلی علاوه شکل شبکه کانتینرها و سرویس های توش رو داده بودم و گفته بودم که دسترسی از طریق nginx هست . نیاز به باز جویی نبود :smile:

برای همین هست که روی لینوکس کار میکنه البته دو پورت مربوط به انجینکس expose شده هستن

ورژن رو درج کرده بودم بالا . جای دیگه ای مد نظر شماست ؟

چون داخل فایل Dockerfile که باهاش image رو ساختم expose شده هست دیگه توی فایل docker-compse این خطوط رو قرار ندادم .


#26

خب پس من اشتباه متوجه شدم، البته بهتره همیشه مستقیم جواب بدیم که بحث پیچیده نشه چون واقعا منم در شرایط مختلفی میام اینجا و نمیتونم دقیق همه چیز رو بخونم.

بنظر میاد مک hosts رو درست نخونده، فکر کنم باید روی اون کار کنید.


#27

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


#28

localserver از چه image ای ساخته شده؟


#29

image base از ارلنگ هست
بعد بهش الکسیر و نود و فونیکس رو اضافه کردم
بعد از image اون استفاده و ردیس
بعد از image اون برای اضافه کردن پستگرس
بعد از image اون برای اضافه کردن nginx استفاده کردم

چون حالت توسعه بود به این صورت عمل کردم تا بتونم هر کدوم رو راحت آپدیت کنم و ساختش هم راحت تر باشه ولی خب اینطور ساختن چون باعث بالا رفتن حجم image میشه خوب نیست و مناسب حالت پروداکشن نیست


#30

روی مک سیستم شما رو شبیه سازی کردم، کار کرد و مشکلی نبود.
از توی proxy ها به اون کانتینر ping دارید؟


#31

متوجه نشدم . از توی پروکسی به کدوم کانتینر ؟‌ چون همه سرویس ها توی یک کانتینر هست به غیر از pgadmin که کانتینر خودش رو داره


#32

پس proxy ها کجا هستند؟


#33

همه داخل یک کانتینر هستن
در واقع من از انجینکس برای این استفاده کردم تا بتونم https رو برروی یک دامنه محلی در لوکال پیاده بکنم


#34

خب اصلا چرا از داکر استفاده می کنید؟ بنظر میاد داکر یک عامل اضافیه و فقط کارتون رو پیچیده‌کرده. شایدم دلیلی داره که من نمیدونم


#35

بخاطر اینکه من روی سیستمم نمی تونم چیزی رو به روز رسانی کنم بخاطر اینکه یک پروژه cms که برای خودم زدم روی نسخه های قدیمی الکسیر و فونیکس هست تا کامل دیپلوی نشه و تست نشه امکان به روز رسانی ندارم چون هر روز در حال فیکس باگ دادن هستم براش


#36

درسته، اما انگار داکر مناسب کاری که می کنید نیست حتی اگر بلاخره جواب بده.
در ضمن اگر proxy ندارید پس port باید publish بشه, پورت های شما به مک فوروارد نشده، بازم‌میگم expose با publish فرق داره


#37

من بیشتر فکر می کنم داکر مناسب مک نیست بیشتر . چون اگر داکر مثل سیستم لینوکسی بالا می اومد من محیط دولوپ نزدیک تری به پروداکشن داشتم نسبت به الان. ولی در کل مشکل مسخره ای هست یک جا کار می کنه یک جا کار نکنه . اونم چیزی که صحبت روش بود یک بار بنویس و هرجا استفاده کن بدون تغییر!!


#38

مشکل شما اول port هست که forward نشده.
@mojtaba.naserei دیدی نیاز به بازجویی هست؟ بازم اشتباه متوجه شدم چون فکر کردم یک کانتینر مخصوص proxy وجود داره و تازه reverse هم‌ دارید.
از گزینه ports در فایل yml یا -p در run استفاده کنید، منظورم expose نیست.


#39

اینجا مشکل از داکر نیست


#40

راستی من پرت هارو اضافه کردم به شرح زیر. البته بگم من زیاد سر در نمی یارم ولی به این صورت عمل کردم

services:
  localserver:
    image: mojtabanaserei/elixir_redis_postgres_nginx:last
    container_name: localserver
    restart: always
    working_dir: /src
    command: sh -c "/start_services.sh && sleep 5000000000000"
    ports:
      - "80:80"
      - "443:443"
    volumes:

اگر منظور شما این پرت ها است. و فرقی نکرد و بازم نتونستم سایتی که در هاست تعریف کردم یعنی

172.18.0.3   wedding.com

هم به آیپیش تایم اوت دارم هم آدرس تو مروگر می زنم بالا نمی یاد بعد از تغییر هاست فایل که چیزی رو نباید ریست کنم ؟