dockerize کردن یک پروژه asp با قابلیت تعیین کانکشن استرینگ به نوان environment
سلام و وقت بخیر
بنده میخوام یک پروژه asp.net core رو dockerize کنم و برای هر بار run کردن image بتونم بهش مقدار connection string رو به صورت environment variable پاس بدم تا از اون استفاده کنه
ممنون میشم راهنماییم کنید.
پاسخ ها
محمد اشرافی
سلام ، وقت شما هم بخیر باشه
این لینک رو ببینید طبق این پیاده سازی کنید
سجاد میرشبی
ممنون استاد پیاده سازی کردم
ولی الان یه مشکل دیگه که دارم این هست که برنامه رو با داکر که اجرا میکنم کار نمیکنه و ارور Site cannot reach میده
به نظرتون مشکل از چی هست؟
محمد اشرافی
توی Kestrel چه خطایی میده ؟
محمد اشرافی
اگر به Kestrel دسترسی ندارید -d رو به container اضافه نکنید
سجاد میرشبی
kestrel چی هست استاد؟
هم با -d و هم بدون اون تست کردم
چندین port متفاوت هم تست کردم ،80 ، 5000، 433 ولی فایده نداشت
سجاد میرشبی
و اینکه استاد توی log های اجرا شدن برنامه اروری نمیاد اصلا
برنامه اجرا میشه
ولی بهش دسترسی ندارم
محمد اشرافی
احتمال زیاد مشکل از آدرس sql ه ، به این مورد توجه کنید که Container شما نمی تونه به بیرون دسترسی داشته باشه مگر اینکه توی یک شبکه باشن
سجاد میرشبی
استاد اصلا به SQL وصلش نکردم هنوز
یک Action داخلش یه string برگردوندم اونو تست میکنم ولی فایده نداره و همون اروری که گفتم رو میده
محمد اشرافی
یه لاگر مثل Nlog یا Serilog نصب کن و لاگ رو توی فایل ذخیره کن ببینم چه خطایی میده
سجاد میرشبی
استاد ارور نمیده اصلا
روی پروژه لوکال که تست میکنم اوکی بود ولی الان اصلا requset رو دریافت نمیکنه
گزارش خروجی رو توی ضمیمه قرار میدم
محمد اشرافی
وقتی enviroment variable ست نکرده بودی مشکلی نداشت ؟
توی این لاگ ها گفته که هاست ساخته شده
سجاد میرشبی
نه استاد هم با env ها و هم بدون اون ها تست کردم
برنامه روی داکر اجرا میشه بدون هیچ مشکل و اروری ولی من نمیتونم بهش دسترسی داشته باشم
این برنامه روی پورت کاستوم 5110 اجرا میشه، اون رو هم تغییر دادم به همون 5000 و تست کردم باز هم جواب نداد
روی پرت های 80 و 433 هم که پورت ها رو ست میکردم باز هم نمیتونستم ریکوست بفرستم
محمد اشرافی
میشه اون کدی که برای ساخت Container می نویسید و عکس Docker File اتون رو برام بفرستید
سجاد میرشبی
بله حتما
کدی که برای اجرای 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 رو هم در ضمیمه قرار میدم براتون
سجاد میرشبی
استاد dockerfile رو مجبور شدم به txt تبدیل کنم تا بتونم در ضمیمه قرار بدم
توی پروژه بدون extension هست