спасибо за комментарий. Если честно, я не планирую пока видео по брокерам сообщений. Но планы имеют одно очень важное свойство. Они постоянно меняются и корректируются.
В этой серии я планирую еще 2-3 видео. После этой серии я буду использовать этот проект для презентации какого-нибудь другого материала, например Kubernetes (если руки дойдут).
Добрый день. Чтобы контейнеры могли общаться внутри докера, Вам сначала нужно создать network (иногда кстати его не нужно создавать и используется дефолтный) и использовать docker-compose, то есть буквально написать еще один докерфайл на стероидах и все должно работать). А вот то что докерфайлы лежат на одном уровне с файлом солюшена, с таким не сталкивался. Обычно на уровне солюшена лежит docker-compose файл, а сами DockerFile лежат в директория где располагается конкретный проект.
В файле проекта csproj есть запись об используемом фреймворке, версии .Net Core. В случае нашего интернет магазина она выглядит вот так: net6.0 Кроме того в первых строчках нашего докер файла мы скачиваем базовый образ .Net Core 6.0 FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base Далее в докер файле мы выполняем компиляцию коммандой RUN dotnet build "OnlineShop.UserManagementService.csproj" -c Debug -o /app/build -r win10-x64 --self-contained Последний параметр --self-contained означает, что во время компиляции к файлам приложения необходимо добавить все файлы зависимостей (библиотеки .Net Core в том числе). В итоге получается сборка, которая содержит в себе всё необходимое для запуска приложения.
@@AndreyShyrokoriadov Спасибо большое за ответ а если я использую сборки фреймворка установленного на сервере скажем. после компиляции как моя сборка понимает что ей нужен именно например 6 й фреймворк? Просто у меня был случай не давно клиент обновил сервер и нам пришлось тоже поднять версию фреймворка в проекте. И я вот не понял откуда сборки знают какой и нужен фреймворк. Спасибо
@@IPmen10001 Я Вашу ситуацию понимаю следующим образом. Предположим у Вас приложение .Net Core 5.0, Вы его скомпилировали без параметра --self-contained.Чтобы это приложение заработало на компьютере Х, на этом компьютере должно быть установлен соответствющий .Net Core Runtime. Если у нас речь идет о приложении .Net Core 5.0, то .Net Core Runtime должен быть 5-ой версии. Кто-то обновил наш сервер, удалил .Net Core Runtime 5.0 и установил .Net Core Runtime 6.0. На этом сервере наше приложение .Net Core 5.0 работать не будет, нет рантайма. Мы либо устанавливаем рантайм на сервере либо подымаем версию нашего приложения чтобы она соответствовала версии рантайма. Иногда восстановить удаленный ранйтайм невозможно по соображением безопасности. Например .Net Core Runtime 2.1 в серьезных конторах уже не установишь. Runtime - это как среда в которой приложение будет работать. Каждое приложение знает какой рантайм ему нужен. Я не знаю как конкретно это записано, но скорей всего в метаданных приложения. Это как взять приложение под Windows, его не получиться запустить на Маке и наоборот. Приложение Windows трубет наличия операционной системы Windows. Чтобы узнать какой рантайм .Net Core установлен, введите в консоли комманду dotnet --list-runtimes - появится список всех установленных рантаймов.
Спасибо за контент, Андрей. Желаю вам успехов✌
Спасибо! Взаимно!
Андрей, благодарю вас за вашу работу !! Самых явных вам успехов !!
Спасибо!
Спасибо за труды! Очень хорошие и понятные объяснения!
Блин, спасибо огромное за такой полезный контент. Просто спасаешь!!!
Спасибо за коммент в поддержку канала
Очень нравится ваша подача и обьяснения, продолжайте! Спасибо!
Спасибо!
Большое спасибо за ролик!
Огромное спасибо, все очень понятно!
Спасибо за комментарий!
Спасибо за видео, как раз перед собесами планировал в докере разобраться). Будут ли видео по Apache Kafka, RabbitMq?
спасибо за комментарий. Если честно, я не планирую пока видео по брокерам сообщений. Но планы имеют одно очень важное свойство. Они постоянно меняются и корректируются.
хороший материал, хорошая подача, хотелось бы узнать, есть ли какой-то план по количеству видео данной серии?
В этой серии я планирую еще 2-3 видео. После этой серии я буду использовать этот проект для презентации какого-нибудь другого материала, например Kubernetes (если руки дойдут).
Добрый день. Чтобы контейнеры могли общаться внутри докера, Вам сначала нужно создать network (иногда кстати его не нужно создавать и используется дефолтный) и использовать docker-compose, то есть буквально написать еще один докерфайл на стероидах и все должно работать). А вот то что докерфайлы лежат на одном уровне с файлом солюшена, с таким не сталкивался. Обычно на уровне солюшена лежит docker-compose файл, а сами DockerFile лежат в директория где располагается конкретный проект.
Подскажите пожалуйста как проект понимает какой фреймворк ему нужен после установки у клиента. Где то ссылки указаны сборке?
В файле проекта csproj есть запись об используемом фреймворке, версии .Net Core. В случае нашего интернет магазина она выглядит вот так: net6.0
Кроме того в первых строчках нашего докер файла мы скачиваем базовый образ .Net Core 6.0 FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base
Далее в докер файле мы выполняем компиляцию коммандой RUN dotnet build "OnlineShop.UserManagementService.csproj" -c Debug -o /app/build -r win10-x64 --self-contained
Последний параметр --self-contained означает, что во время компиляции к файлам приложения необходимо добавить все файлы зависимостей (библиотеки .Net Core в том числе). В итоге получается сборка, которая содержит в себе всё необходимое для запуска приложения.
@@AndreyShyrokoriadov Спасибо большое за ответ а если я использую сборки фреймворка установленного на сервере скажем. после компиляции как моя сборка понимает что ей нужен именно например 6 й фреймворк? Просто у меня был случай не давно клиент обновил сервер и нам пришлось тоже поднять версию фреймворка в проекте. И я вот не понял откуда сборки знают какой и нужен фреймворк. Спасибо
@@IPmen10001 Я Вашу ситуацию понимаю следующим образом. Предположим у Вас приложение .Net Core 5.0, Вы его скомпилировали без параметра --self-contained.Чтобы это приложение заработало на компьютере Х, на этом компьютере должно быть установлен соответствющий .Net Core Runtime. Если у нас речь идет о приложении .Net Core 5.0, то .Net Core Runtime должен быть 5-ой версии. Кто-то обновил наш сервер, удалил .Net Core Runtime 5.0 и установил .Net Core Runtime 6.0. На этом сервере наше приложение .Net Core 5.0 работать не будет, нет рантайма. Мы либо устанавливаем рантайм на сервере либо подымаем версию нашего приложения чтобы она соответствовала версии рантайма. Иногда восстановить удаленный ранйтайм невозможно по соображением безопасности. Например .Net Core Runtime 2.1 в серьезных конторах уже не установишь.
Runtime - это как среда в которой приложение будет работать. Каждое приложение знает какой рантайм ему нужен. Я не знаю как конкретно это записано, но скорей всего в метаданных приложения. Это как взять приложение под Windows, его не получиться запустить на Маке и наоборот. Приложение Windows трубет наличия операционной системы Windows.
Чтобы узнать какой рантайм .Net Core установлен, введите в консоли комманду dotnet --list-runtimes - появится список всех установленных рантаймов.
@@AndreyShyrokoriadov круто!!!! спасибо большое!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! вас понял👏👏👏👏👏👏👏👏👏👏👏👏👏👏👏👏👏👏👏👏
сенкию вери муч...правда
ю а вэлкам