dockerize کردن یک پروژه asp با قابلیت تعیین کانکشن استرینگ به نوان environment
سلام و وقت بخیر
بنده میخوام یک پروژه asp.net core رو dockerize کنم و برای هر بار run کردن image بتونم بهش مقدار connection string رو به صورت environment variable پاس بدم تا از اون استفاده کنه
ممنون میشم راهنماییم کنید.
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 هست