wie man Aspose.Cells.GridWeb in docker ausführt

Docker-Leitfaden

Voraussetzungen

Stellen Sie sicher, dass Sie Docker auf Ihrem Rechner installiert haben. Sie können Docker von der offiziellen Docker-Website herunterladen und installieren.

Schritt 1: Erstellen Sie ein Dockerfile

Erstellen Sie eine Datei namens Dockerfile in Ihrem Projekt Verzeichnis. Der Dockerfile sollte Anweisungen enthalten, wie Sie Ihr Docker-Image erstellen.

Schritt 2: Schreiben Sie den Dockerfile für GridWeb

Hier ist ein Beispiel-Dockerfile (https://github.com/aspose-cells/Aspose.Cells-for-.NET/blob/master/Examples_GridWeb/Dockerfile) für das GridWeb-Demo mit ASP.NET Core-Anwendung:

# Use the official .NET6.0 runtime as a parent image
FROM mcr.microsoft.com/dotnet/aspnet:6.0-focal AS base
WORKDIR /app  
EXPOSE 80 


# Use the official .NET6.0 SDK as build enviroment
FROM mcr.microsoft.com/dotnet/sdk:6.0-focal AS build

WORKDIR /src  
#we shall use .net6.0 project
COPY ["GridWeb.Demo.NET6.0.csproj", "."]
RUN dotnet restore "./GridWeb.Demo.NET6.0.csproj"

# Copy everything else and build
COPY . .
WORKDIR "/src/."
RUN dotnet build "GridWeb.Demo.NET6.0.csproj" -c Release -o /app/build

# Publish the app
FROM build AS publish
RUN dotnet publish "GridWeb.Demo.NET6.0.csproj" -c Release -o /app/publish

# Final stage/image
FROM base AS final
WORKDIR /app
# if you want display better like in windows ,you need to install kinds of fonts in /usr/share/fonts/ 
# then the application can parse and render the fonts which is used in the spread sheet file
# here we don't provide extra fonts resource
# Install Fonts because the SDK image contains very few fonts. The command copies font files from local to docker image. Make sure you have a local “fonts” directory that contains all the fonts you need to install. In this example, the local “fonts” directory is put in the same directory as the Dockerfile.
# COPY fonts/* /usr/share/fonts/
# the basic file path which contains the spread sheet files 
RUN mkdir -p /app/wb
# the cache file path for GridWeb
RUN mkdir -p /app/filecache
# the cache picture path for GridWeb
RUN mkdir -p /app/piccache
COPY wwwroot/wb/*.xlsx /app/wb/

COPY --from=publish /app/publish .

# set the start command for the docker image 
ENTRYPOINT ["dotnet", "GridWeb.Demo.NET6.0.dll"]

Schritt 3: Erstellen des Docker-Images

Bauen Sie das Docker-Image: Führen Sie im Terminal den folgenden Befehl aus, um Ihr Docker-Image zu erstellen:

docker build -t gridweb-demo-net6 .

Sie können gridweb-demo-net6 durch den Namen ersetzen, den Sie Ihrem Docker-Image geben möchten.

Schritt 4: Ausführen eines Docker-Containers

Nachdem das Image erstellt wurde, können Sie einen Container mit dem folgenden Befehl ausführen:

docker run -d -p 24262:80 --name gridweb-demo-container  gridweb-demo-net6

Erklärung der Optionen des Docker Run-Befehls -d: Führen Sie den Container im Hintergrundmodus (getrennt) aus. -p 24262:80: Ordnen Sie Port 80 im Container Port 24262 an der Hostmaschine zu. Benennen Sie den Container gridweb-demo-container: Weisen Sie dem Container einen Namen zu.

Schritt 5: Überprüfen, ob der Container läuft

Um zu überprüfen, ob Ihr Container ausgeführt wird, verwenden Sie den folgenden Befehl:

docker ps

Hier werden alle laufenden Container aufgelistet. Sie sollten Ihren Container zusammen mit seinem Namen und Status sehen.

Schritt 6: Zugriff auf die Webanwendung

Öffnen Sie einen Webbrowser und gehen Sie zu ‘http://localhost:24262/’. Dort sollten Sie Ihre Anwendung ausgeführt sehen.

Sie sehen den allgemeinen Entwicklungsleitfaden für GridWeb.

Klicken Sie auf Demo auf der Seite, um Bearbeitungsvorgänge für die Tabellendatei auszuführen.

Weitere Befehle

Stoppen des Containers

Um einen laufenden Container zu stoppen, verwenden Sie den folgenden Befehl:

docker stop gridweb-demo-container

Entfernen eines Containers

Um einen gestoppten Container zu entfernen, verwenden Sie den folgenden Befehl:

docker rm  gridweb-demo-container

Entfernen eines Bildes

Um ein Bild zu entfernen, verwenden Sie den folgenden Befehl:

docker rmi gridweb-demo-net6