Comment exécuter Blazor (C #) avec Docker

Qu'est-ce que Blazor?

Blazor est un framework permettant de créer des interfaces utilisateur Web interactives côté client à l'aide de .NET. · Utilisez C # au lieu de JavaScript pour créer de superbes interfaces utilisateur interactives. -Partagez la logique des applications côté serveur et côté client écrites en .NET. · Rend l'interface utilisateur au format HTML et CSS pour un large éventail de support de navigateur, y compris les navigateurs mobiles. -Intégrer avec les dernières plates-formes d'hébergement telles que Docker. https://docs.microsoft.com/ja-jp/aspnet/core/blazor/?view=aspnetcore-3.1

Je vois, c'est incroyable.

J'ai essayé d'exécuter Blazor sur Docker, je voudrais donc résumer la procédure.

Cette fois, je voudrais créer avec le modèle d'hébergement ASP.NET Core Blazor. Du côté du navigateur, le runtime .NET basé sur WebAssembly (Blazor WebAssembly) est en cours d'exécution.

dotnet-3.1.402docker-19.03.12

Tout d'abord, créez un projet

Exécutez la commande suivante. Le nom du projet est «BrazorwasmDotNetCoreHostedWithDocker».

dotnet new blazorwasm --hosted -o BrazorwasmDotNetCoreHostedWithDocker

Puis

キャプチャ.JPG

Avec ce genre de sentiment, je pense que vous pouvez créer un projet côté serveur, côté client et parties communes.

Vérifier le fonctionnement localement

cd BrazorwasmDotNetCoreHostedWithDocker
dotnet publish

Si tout se passe bien, votre projet doit avoir un fichier exécutable dans Server \ bin \ Debug \ netcoreapp3.1 \ publish ci-dessous. Assurez-vous qu'il y a une «racine www» en dessous. Ce sera le dossier public.

Ça va commencer.

cd Server\bin\Debug\netcoreapp3.1\publish
dotnet BrazorwasmDotNetCoreHostedWithDocker.Server.dll

Le journal est sorti comme ceci. キャプチャ.JPG Je pense qu'il y a un chemin de racine de contenu dedans, mais c'est la racine de contenu, et le wwwroot en dessous est le dossier public.

Accédez à http: // localhost: 5000 / à partir du navigateur, et si la page suivante s'affiche, elle réussit. キャプチャ.JPG

Faites la même chose sur Docker que ci-dessus.

Créer un Dockerfile

Créez le fichier Docker suivant en haut du projet.

Dockerfile


#Compiler
FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build-env
WORKDIR /app
#Copiez et restaurez tout ce qu'il contient
COPY . ./
RUN dotnet restore
#Publier dans le répertoire
RUN dotnet publish -c Release -o out

#Préparer une image pour l'exécution
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1
WORKDIR /app
COPY --from=build-env /app/out .
EXPOSE 80
ENTRYPOINT ["dotnet", "BrazorwasmDotNetCoreHostedWithDocker.Server.dll"]

Concernant l'image à exécuter, Le chemin de la racine du contenu est le répertoire d'exécution de la commande dotnet, et il est configuré pour amener wwwroot directement sous / app.

Construction de Docker

Veuillez revenir juste en dessous du projet

docker build -t brazorwasmdotnetcorehosted .

Courez ici. Je l'ai créé avec l'image brazorwasmdotnetcorehosted. Si vous faites des images docker et que vous avez une image, vous réussissez. キャプチャ.JPG

Course de Docker

docker run -d -p 80:80 brazorwasmdotnetcorehosted:latest --rm

Si vous allez sur http: // localhost /, vous devriez voir la page précédente.

En passant, dans le cas de stand-alone (contenu statique uniquement)

Lors de la réalisation du premier projet

dotnet new blazorwasm -o BrazorwasmDotNetCoreStandAloneWithDocker

Et vous pouvez le créer avec Dockerfile. Je cours sur nginx.

Dockerfile


#Compiler
FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build-env
WORKDIR /app
#Copiez et restaurez tout ce qu'il contient
COPY . ./
RUN dotnet restore
#Publier dans le répertoire
RUN dotnet publish -c Release -o out

FROM nginx:alpine
EXPOSE 80
COPY --from=build-env /app/out/wwwroot /usr/share/nginx/html

Recommended Posts

Comment exécuter Blazor (C #) avec Docker
Pour exécuter JavaFX sur Docker
Comment démarrer Camunda avec Docker
Comment partager des fichiers avec Docker Toolbox
Comment créer un environnement Rails 6 avec Docker
Comment installer Docker
Exécutez Payara avec Docker
Comment donner votre image à quelqu'un avec Docker
[Rails] Comment créer un environnement avec Docker
Comment exécuter javafx avec Raspeye publié le 12/07/2020
Exécutez TAO Core avec Docker
Comment créer un environnement Docker avec Gradle pour IntelliJ
[Environnement Docker] Comment gérer ActiveSupport :: MessageEncryptor :: InvalidMessage
Comment définir nginx de Docker
Comment numéroter (nombre) avec html.erb
Exécuter des rails à chaque fois dans le docker
Comment mettre à jour avec activerecord-import
Écrivons comment créer une API avec SpringBoot + Docker à partir de 0
Comment exécuter uniquement des fichiers spécifiques avec le test de rake de gem
Comment créer un environnement [TypeScript + Vue + Express + MySQL] avec Docker ~ Express ~
Comment démarrer avec Slim
Comment exécuter JUnit dans Eclipse
Comment exécuter Ant dans Gradle
Comment entourer n'importe quel caractère avec "~"
Hello World avec Docker et langage C
Comment utiliser mssql-tools avec Alpine
Faites fonctionner Jupyter Lab n'importe où avec Docker
Mettre à jour MySQL de 5.7 à 8.0 avec Docker
Comment créer CloudStack à l'aide de Docker
Comment créer un environnement [TypeScript + Vue + Express + MySQL] avec Docker ~ MySQL ~
Exécutez logstash avec Docker et essayez de télécharger des données sur Elastic Cloud
Comment créer un environnement Rails + Vue + MySQL avec Docker [dernière version 2020/09]
Comment créer un environnement [TypeScript + Vue + Express + MySQL] avec Docker ~ Sequelize ~
[Pour ceux qui créent des portefeuilles] Comment utiliser binding.pry avec Docker
Comment recadrer une image avec libGDX
Comment ajuster TextPosition avec l'extension de clavier iOS
Comment compiler Java avec VsCode & Ant
[Java] Résumez comment comparer avec la méthode equals
Convertir le langage C en JavaScript avec Emscripten
[Android] Comment gérer les thèmes sombres
Comment utiliser BootStrap avec Play Framework
Comment changer d'images miniatures avec JavaScript
Déployer sur heroku avec Docker (Rails 6, MySQL)
Comment utiliser Docker dans VSCode DevContainer
Comment faire un contrôle basé sur l'API avec cancancan