Обложка канала

.NET Разработчик

Опытный разработчик не так давно зашёл в .Net и поставил цель получить сертификат Microsoft. Свой ежедневный прогресс он описывает на канале .Net Разработчик. Заметки об изученном материале, советы по повышению производительности и поддержке мотивации, ин

.NET Разработчик

4 года назад
Открыть в
День 1327. #ЧтоНовенького .NET 7 SDK Поддерживает Создание Контейнерных Приложений 25 августа Microsoft объявили, что .NET 7 SDK будет включать поддержку создания контейнерных приложений в рамках процесса публикации сборки, минуя необходимость в явной фазе сборки Docker. Обоснованием этого решения было упрощение стандартного кода Docker и снижение когнитивной нагрузки на разработчиков, что позволило создавать контейнерные приложения в .NET быстрее, чем раньше. Разработчики могут использовать сгенерированные контейнеры в локальной разработке или использовать их для создания образов в рамках конвейера CI/CD. Чет Хаск, продукт-менеджер .NET SDK, объясняет, что для создания этой функции им пришлось добавить поддержку обработки файлов TAR непосредственно в .NET. Это позволило изменять и обновлять файлы образов Docker, которые упакованы как файлы TAR в соответствии со спецификацией Open Container Initiative, во время обычного процесса сборки .NET. Вся информация, необходимая для создания образа контейнера приложения .NET, уже имеется в момент сборки, а в пакет SDK для .NET был добавлен процесс сборки образа контейнера, написанный на C#. Образ Docker может иметь множество параметров конфигурации. В процессе сборки образа .NET SDK эти конфигурации отображаются как свойства на уровне проекта. Например, проект ASP.NET Core имеет базовый образ контейнера по умолчанию из реестра контейнеров Azure. Если вы хотите заменить его на другой базовый образ, вам придётся изменить свойство ContainerBaseImage в файле проекта и выбрать для него новый образ. Процесс сборки также примет имя сборки проекта в качестве имени образа, которое также можно переопределить с помощью свойства проекта ContainerImageName. Основное ограничение заключается в том, что команды Dockerfile RUN не поддерживаются. По словам Хаска, нет возможности выполнять команды RUN с помощью .NET SDK. Команды Dockerfile RUN позволяют создавать промежуточные образы, запуская команды операционной системы в создаваемом образе, обычно для установки инструмента или изменения конфигурации системы. В качестве обходного пути Microsoft предлагает создать образ, использующий команды RUN, с помощью Docker, а затем указать этот образ в качестве базового при создании контейнеров в .NET SDK. Чтобы попробовать эту новую функцию в .NET 7, вам необходимо установить Docker на вашем компьютере для разработки, по крайней мере, на данном этапе. Зависимость от Docker связана с тем, что SDK по-прежнему полагается на него для аутентификации в реестрах контейнеров. Также Docker по-прежнему необходим для запуска сгенерированного образа контейнера. На данный момент эта функция поддерживается только для образов Linux. В Microsoft заявляют, что образы Windows и проверка подлинности реестра контейнеров будут готовы до выпуска .NET 7 наряду с другими возможностями настройки образов. Источник: https://www.infoq.com/news/2022/09/dotnet-sdk-container-support/