Спасибо за труды! Очень хорошие и понятные объяснения!
@iraklidavitaia Жыл бұрын
Спасибо за контент, Андрей. Желаю вам успехов✌
@AndreyShyrokoriadov Жыл бұрын
Спасибо! Взаимно!
@xelaksal6690 Жыл бұрын
Огромное спасибо, все очень понятно!
@AndreyShyrokoriadov Жыл бұрын
Спасибо за комментарий!
@ОрханБабаев-х8л Жыл бұрын
Андрей, благодарю вас за вашу работу !! Самых явных вам успехов !!
@AndreyShyrokoriadov Жыл бұрын
Спасибо!
@montecristo31 Жыл бұрын
Блин, спасибо огромное за такой полезный контент. Просто спасаешь!!!
@AndreyShyrokoriadov Жыл бұрын
Спасибо за коммент в поддержку канала
@sergeys5270 Жыл бұрын
Очень нравится ваша подача и обьяснения, продолжайте! Спасибо!
@AndreyShyrokoriadov Жыл бұрын
Спасибо!
@nikitabukov1292 Жыл бұрын
Спасибо за видео, как раз перед собесами планировал в докере разобраться). Будут ли видео по Apache Kafka, RabbitMq?
@AndreyShyrokoriadov Жыл бұрын
спасибо за комментарий. Если честно, я не планирую пока видео по брокерам сообщений. Но планы имеют одно очень важное свойство. Они постоянно меняются и корректируются.
@Александр-ш8я6н Жыл бұрын
хороший материал, хорошая подача, хотелось бы узнать, есть ли какой-то план по количеству видео данной серии?
@AndreyShyrokoriadov Жыл бұрын
В этой серии я планирую еще 2-3 видео. После этой серии я буду использовать этот проект для презентации какого-нибудь другого материала, например Kubernetes (если руки дойдут).
@shkippitor1895 Жыл бұрын
Добрый день. Чтобы контейнеры могли общаться внутри докера, Вам сначала нужно создать network (иногда кстати его не нужно создавать и используется дефолтный) и использовать docker-compose, то есть буквально написать еще один докерфайл на стероидах и все должно работать). А вот то что докерфайлы лежат на одном уровне с файлом солюшена, с таким не сталкивался. Обычно на уровне солюшена лежит docker-compose файл, а сами DockerFile лежат в директория где располагается конкретный проект.
@IPmen10001 Жыл бұрын
Подскажите пожалуйста как проект понимает какой фреймворк ему нужен после установки у клиента. Где то ссылки указаны сборке?
@AndreyShyrokoriadov Жыл бұрын
В файле проекта 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 в том числе). В итоге получается сборка, которая содержит в себе всё необходимое для запуска приложения.
@IPmen10001 Жыл бұрын
@@AndreyShyrokoriadov Спасибо большое за ответ а если я использую сборки фреймворка установленного на сервере скажем. после компиляции как моя сборка понимает что ей нужен именно например 6 й фреймворк? Просто у меня был случай не давно клиент обновил сервер и нам пришлось тоже поднять версию фреймворка в проекте. И я вот не понял откуда сборки знают какой и нужен фреймворк. Спасибо
@AndreyShyrokoriadov Жыл бұрын
@@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 - появится список всех установленных рантаймов.