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

سوال شده توسط: سجاد میرشبی

تاریخ ثبت: ۱۴۰۰/۱۰/۱۴

بازدید: 780

پاسخ: 15

تگ: Asp.net Core


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

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

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

پاسخ ها
user

محمد اشرافی

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

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

user

سجاد میرشبی

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

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

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

user

محمد اشرافی

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

user

محمد اشرافی

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

user

سجاد میرشبی

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

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

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

user

سجاد میرشبی

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

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

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

user

محمد اشرافی

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

user

سجاد میرشبی

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

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

user

محمد اشرافی

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

user

سجاد میرشبی

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

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

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

دریافت فایل ضمیمه
user

محمد اشرافی

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

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

user

سجاد میرشبی

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

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

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

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

user

محمد اشرافی

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

user

سجاد میرشبی

بله حتما

کدی که برای اجرای 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 رو هم در ضمیمه قرار میدم براتون

user

سجاد میرشبی

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

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

دریافت فایل ضمیمه
برای ثبت پاسخ باید خود شوید

محبوب ترین مقالات