#c# #docker #dockerfile #blazor-webassembly #asp.net-blazor
#c# #docker #dockerfile #blazor-webassembly #asp.net-blazor
Вопрос:
Цель
Цель состоит в том, чтобы развернуть приложение BlazorWasm с интегрированным API (ASP.NET Core hosted) с использованием одного контейнера docker.
Из-за того, что приложение BlazorWasm (.. размещенное на .NET) запускает клиент и API, используя один и тот же порт в IIS Express и VS, я полагаю, что это должно быть возможно.
Я знаю о преимуществах использования микросервисов и разделения проектов, но это не то, что я ищу. Мои причины для этого являются как экономичными, так и любопытными.
Мне нужна помощь в том, как создать Dockerfile, поддерживающий это.
Что я пробовал
В более раннем проекте я использовал 2 отдельных веб-приложения, одно для клиента и одно для API, но теперь я надеюсь, что смогу сделать это с помощью монолитного контейнера.
Кроме того, в VS Community 2019 (16.8.3) невозможно добавить поддержку Docker в приложения Blazor Wasm (только для серверных приложений Blazor).
Я искал решения и рабочие примеры этого, но не смог найти ничего полезного.
Любые рекомендации будут высоко оценены!
Комментарии:
1. Microsoft предоставляет образ, содержащий среду выполнения AspNetCore. Вы можете использовать это изображение в качестве базового изображения для самостоятельно созданного изображения или использовать его напрямую. Если вы хотите выполнить два процесса в контейнере (вы хотите это сделать? — Ваш вопрос немного расплывчатый.), используйте сценарий запуска, который запускает эти процессы как фоновые процессы и ждет, пока они не завершатся.
2. Правильно, два процесса в контейнере. Blazor Wasm .net размещен в одном контейнере, и я хочу, чтобы Dockerfile или метод решали эту проблему с помощью Dockerfile. То, что вы предлагаете, похоже на то, что мне нужно. У вас есть ссылка на какую-либо информацию, которая может помочь?
3. Вы можете сделать это вручную (просто написать сценарий оболочки) или использовать систему управления процессом, например
supervisord
. Взгляните на docs.docker.com/config/containers/multi-service_container , Я думаю, это будет полезно.