Тёмный
No video :(

.Net Core приложение с нуля - Docker и контейнеризация наших микросервисов. Видео №6. [#75] 

Andrey Shyrokoriadov
Подписаться 4,3 тыс.
Просмотров 1,6 тыс.
50% 1

#сервисыnetcore #ef #entityframework #codefirst #moq #autofixture #приложениеснуля #фасадшаблонпроектирования #docker #dockerhub
В этом видео мы добавим контейнеры Docker к 5 микросервисам нашего приложения.
Подписывайтесь на канал [программирование, путешествия]: / @andreyshyrokoriadov
Поддержите канал на Patreon: www.patreon.co...
Код из данного видео: github.com/ash...
Библиотеки:
Moq: documentation....
AutoFixture: autofixture.gi...
IdentityServer: identityserver...
.Net Core: learn.microsof...
Полезные ссылки:
Докер файл: docs.docker.co...
stackoverflow....
stackoverflow....
stackoverflow....
jwt.io/
Комманды докер:
docker build -t user-management-debug -f UserManagementService_Dockerfile_Debug .
docker build -t identity-server-debug -f IdentityServer_Dockerfile_Debug .
docker build -t orders-debug -f OrdersService_Dockerfile_Debug .
docker build -t articles-debug -f ArticlesService_Dockerfile_Debug .
docker build -t api-service-debug -f ApiService_Dockerfile_Debug .
docker run -p 5001:5001 identity-server-debug
docker run -p 5002:5002 user-management-debug
docker run -p 5004:5004 orders-debug-debug
docker run -p 5006:5006 articles-debug-debug
docker run -p 5008:5008 api-service-debug-debug
Хронометраж:
00:00:23 Вступление
00:01:15 План работы
00:04:11 Преимущества Docker
00:09:35 Основные понятия Docker
00:15:10 Docker в контексте нашего приложения
00:18:00 Ошибки новичка при использовании Docker
00:20:50 Создание первого контейнера Docker с отключенной аутентификацией
00:45:00 Добавления IdentityServer в контейнер Docker
00:59:30 Настройка API тестов для работы с Docker
01:12:35 Окончание

Опубликовано:

 

22 авг 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 24   
@goldgold594
@goldgold594 5 месяцев назад
Большое спасибо за ролик!
@xelaksal6690
@xelaksal6690 Год назад
Огромное спасибо, все очень понятно!
@AndreyShyrokoriadov
@AndreyShyrokoriadov Год назад
Спасибо за комментарий!
@iraklidavitaia
@iraklidavitaia Год назад
Спасибо за контент, Андрей. Желаю вам успехов✌
@AndreyShyrokoriadov
@AndreyShyrokoriadov Год назад
Спасибо! Взаимно!
@montecristo31
@montecristo31 Год назад
Блин, спасибо огромное за такой полезный контент. Просто спасаешь!!!
@AndreyShyrokoriadov
@AndreyShyrokoriadov Год назад
Спасибо за коммент в поддержку канала
@user-sf8hy6mj3h
@user-sf8hy6mj3h Год назад
Андрей, благодарю вас за вашу работу !! Самых явных вам успехов !!
@AndreyShyrokoriadov
@AndreyShyrokoriadov Год назад
Спасибо!
@andrionos
@andrionos Год назад
Спасибо за труды! Очень хорошие и понятные объяснения!
@sergeys5270
@sergeys5270 Год назад
Очень нравится ваша подача и обьяснения, продолжайте! Спасибо!
@AndreyShyrokoriadov
@AndreyShyrokoriadov Год назад
Спасибо!
@nikitabukov1292
@nikitabukov1292 Год назад
Спасибо за видео, как раз перед собесами планировал в докере разобраться). Будут ли видео по Apache Kafka, RabbitMq?
@AndreyShyrokoriadov
@AndreyShyrokoriadov Год назад
спасибо за комментарий. Если честно, я не планирую пока видео по брокерам сообщений. Но планы имеют одно очень важное свойство. Они постоянно меняются и корректируются.
@shkippitor1895
@shkippitor1895 Год назад
Добрый день. Чтобы контейнеры могли общаться внутри докера, Вам сначала нужно создать network (иногда кстати его не нужно создавать и используется дефолтный) и использовать docker-compose, то есть буквально написать еще один докерфайл на стероидах и все должно работать). А вот то что докерфайлы лежат на одном уровне с файлом солюшена, с таким не сталкивался. Обычно на уровне солюшена лежит docker-compose файл, а сами DockerFile лежат в директория где располагается конкретный проект.
@user-bb2ho4ip8t
@user-bb2ho4ip8t Год назад
хороший материал, хорошая подача, хотелось бы узнать, есть ли какой-то план по количеству видео данной серии?
@AndreyShyrokoriadov
@AndreyShyrokoriadov Год назад
В этой серии я планирую еще 2-3 видео. После этой серии я буду использовать этот проект для презентации какого-нибудь другого материала, например Kubernetes (если руки дойдут).
@IPmen10001
@IPmen10001 Год назад
Подскажите пожалуйста как проект понимает какой фреймворк ему нужен после установки у клиента. Где то ссылки указаны сборке?
@AndreyShyrokoriadov
@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
@IPmen10001 Год назад
@@AndreyShyrokoriadov Спасибо большое за ответ а если я использую сборки фреймворка установленного на сервере скажем. после компиляции как моя сборка понимает что ей нужен именно например 6 й фреймворк? Просто у меня был случай не давно клиент обновил сервер и нам пришлось тоже поднять версию фреймворка в проекте. И я вот не понял откуда сборки знают какой и нужен фреймворк. Спасибо
@AndreyShyrokoriadov
@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 - появится список всех установленных рантаймов.
@IPmen10001
@IPmen10001 Год назад
@@AndreyShyrokoriadov круто!!!! спасибо большое!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! вас понял👏👏👏👏👏👏👏👏👏👏👏👏👏👏👏👏👏👏👏👏
@ashotrustavelyan7498
@ashotrustavelyan7498 Год назад
сенкию вери муч...правда
@AndreyShyrokoriadov
@AndreyShyrokoriadov Год назад
ю а вэлкам
Далее
[S01E01] Introduction to Docker | BookClub DOTNET
43:38
62. Основы контейнеризации
12:13
КАК НАЧАТЬ ПОНИМАТЬ LINUX (2024)
21:10
C# ASP.NET Core 5 | Hangfire
24:30
Просмотров 10 тыс.