dockerize کردن یک پروژه asp با قابلیت تعیین کانکشن استرینگ به نوان environment

سجاد میرشبی بایگی
14 دي ۱۴۰۰

سلام و وقت بخیر

بنده میخوام یک پروژه asp.net core رو dockerize کنم و برای هر بار run کردن image بتونم بهش مقدار connection string رو به صورت environment variable پاس بدم تا از اون استفاده کنه

ممنون میشم راهنماییم کنید.

1242

15 پاسخ
  • محمد اشرافی16 دي ۱۴۰۰

    سلام ، وقت شما هم بخیر باشه

    این لینک رو ببینید طبق این پیاده سازی کنید

  • سجاد میرشبی بایگی16 دي ۱۴۰۰

    ممنون استاد پیاده سازی کردم

    ولی الان یه مشکل دیگه که دارم این هست که برنامه رو با داکر که اجرا میکنم کار نمیکنه و ارور Site cannot reach میده

    به نظرتون مشکل از چی هست؟

  • محمد اشرافی16 دي ۱۴۰۰

    توی Kestrel چه خطایی میده ؟

  • محمد اشرافی17 دي ۱۴۰۰

    اگر به Kestrel دسترسی ندارید -d رو به container اضافه نکنید

  • سجاد میرشبی بایگی17 دي ۱۴۰۰

    kestrel چی هست استاد؟

    هم با -d و هم بدون اون تست کردم 

    چندین port متفاوت هم تست کردم ،80 ، 5000، 433 ولی فایده نداشت

  • سجاد میرشبی بایگی17 دي ۱۴۰۰

    و اینکه استاد توی log های اجرا شدن برنامه اروری نمیاد اصلا

    برنامه اجرا میشه

    ولی بهش دسترسی ندارم

  • محمد اشرافی17 دي ۱۴۰۰

    احتمال زیاد مشکل از آدرس sql ه ، به این مورد توجه کنید که Container شما نمی تونه به بیرون دسترسی داشته باشه مگر اینکه توی یک شبکه باشن

  • سجاد میرشبی بایگی18 دي ۱۴۰۰

    استاد اصلا به SQL وصلش نکردم هنوز

    یک Action داخلش یه string برگردوندم اونو تست میکنم ولی فایده نداره و همون اروری که گفتم رو میده

  • محمد اشرافی18 دي ۱۴۰۰

    یه لاگر مثل Nlog یا Serilog نصب کن و لاگ رو توی فایل ذخیره کن ببینم چه خطایی میده

  • سجاد میرشبی بایگی18 دي ۱۴۰۰

    استاد ارور نمیده اصلا

    روی پروژه لوکال که تست میکنم اوکی بود ولی الان اصلا requset رو دریافت نمی‌‎کنه

    گزارش خروجی رو توی ضمیمه قرار میدم

  • محمد اشرافی19 دي ۱۴۰۰

    وقتی enviroment variable ست نکرده بودی مشکلی نداشت ؟

     توی این لاگ ها گفته که هاست ساخته شده

  • سجاد میرشبی بایگی19 دي ۱۴۰۰

    نه استاد هم با env ها و هم بدون اون ها تست کردم

    برنامه روی داکر اجرا میشه بدون هیچ مشکل و اروری ولی من نمیتونم بهش دسترسی داشته باشم

    این برنامه روی پورت کاستوم 5110 اجرا میشه، اون رو هم تغییر دادم به همون 5000 و تست کردم باز هم جواب نداد

    روی پرت های 80 و 433 هم که پورت ها رو ست میکردم باز هم نمیتونستم ریکوست بفرستم

  • محمد اشرافی20 دي ۱۴۰۰

    میشه اون کدی که برای ساخت Container می نویسید و عکس Docker File اتون رو برام بفرستید

  • سجاد میرشبی بایگی20 دي ۱۴۰۰

    بله حتما

    کدی که برای اجرای Container اجرا می‌کنم:

    docker run -dp 5110:80 <image-name> -e ASPNETCORE_ENVIRONMENT="Production" -e CONNECTION_STRING="Server=192.168.2.3;Database=App;User Id=sa;Password=123" -e SERVICE_NAME="Cdn"

    dockerfile رو هم در ضمیمه قرار میدم براتون

  • سجاد میرشبی بایگی20 دي ۱۴۰۰

    استاد dockerfile رو مجبور شدم به txt تبدیل کنم تا بتونم در ضمیمه قرار بدم

    توی پروژه بدون extension هست