在Docker容器中设置LEADTOOLS文档服务

本教程展示了如何在Docker容器中设置LEADTOOLS文档服务。

概述
总结 本教程介绍如何使用Docker设置LEADTOOLS文档服务。
完成时间 30分钟
Visual Studio项目 下载教程项目(49mb)
平台 ASP。网Application using Docker
IDE Visual Studio 2019、2022
开发许可 下载LEADTOOLS

所需的知识

你将需要这些资源:

请注意

Docker最近改变了他们的许可政策:“Docker Desktop仍然对小型企业(少于250名员工,年收入低于1000万美元)、个人使用、教育和非商业开源项目免费。”

设置License文件

第一步是设置许可证文件。打开ServiceHelper.cs文件位于…\助手\ \ DocumentServiceDotNet \ src \工具.翻到368行,找到SetLicense函数。中替换整个代码SetLicense函数,在第422行,使用以下代码:

c#
公共静态无效SetLicense (){varlicString =“(许可证)\ n”+"许可证= 2.0 '将您的许可证内容粘贴到这里' "vardeveloperKey ="粘贴你的开发者键在这里"字节[] licBytes = System.Text.Encoding.UTF8.GetBytes(licString);RasterSupport。SetLicense(licBytes, developerKey);IsLicenseChecked = !RasterSupport.KernelExpired;}

唯一的部分LEADTOOLS.lic本教程所需的文件是最后一行。复制整行并粘贴到上面代码所指示的位置。

LEADTOOLS开发人员键在LEADTOOLS.lic.key文件。如上面的代码所示,将该文件的全部内容复制并粘贴到developerKey变量中。

创建Docker文件

打开DocumentServicesDotNet文件夹中。创建一个名为Dockerfile.这个文件将包含Docker构建文档服务的所有指令。的Dockerfile指示Docker在容器中安装所需的依赖项。

安装项目文件

本节Dockerfile将设置要在容器中运行的项目文件。首先,它安装应用程序所需的SDK(相应更改以匹配,信息可在找到)。

接下来,它将容器的当前目录设置为/应用程序并将本地目录中的所有文件复制到容器的目录中应用程序目录,并恢复和发布DocumentService.csproj发现于核心文件夹放入app /出目录。

将以下代码添加到Dockerfile

构建项目(hub.docker.com/_/microsoft-dotnet-sdk)来自mcr.microsoft.com/dotnet/core/sdk:2.1 AS build-envWORKDIR /应用程序#复制一切并构建拷贝。/运行dotnet restore core/DocumentService。csproj \&& dotnet发布-c发布- 0…/ / DocumentService.csproj核心

安装运行时环境

下一节Dockerfile将在容器中设置运行时环境。

首先,它安装应用程序所需的运行时(相应更改以匹配,信息可在找到)。然后将容器的当前目录设置为临时并将Debian包源代码添加到sources.list文件,以便能够利用和拉所需的依赖关系apt-get.接下来,它设置一个容器环境DEBIAN_FRONTEND变为非交互式,以防止通过安装依赖项请求任何确认或可选输入。最后,它更新apt-get并安装apt-utilswget以进一步方便安装其他依赖项。

将以下代码添加到Dockerfile

构建运行时映像(hub.docker.com/_/microsoft-dotnet-aspnet)从mcr.microsoft.com/dotnet/core/aspnet: 2.1WORKDIR / temp添加包源运行回声"deb http://ftp.us.debian.org/debian stretch main contrib"> > /etc/apt/sources.list#生成APT缓存ENV DEBIAN_FRONTEND非交互式运行apt-get update&& apt-get install -y apt-utils

设置LEADTOOLS依赖项

本节安装LEADTOOLS所需的依赖项,以便在容器中运行。

Microsoft字体部分只需要具有GUI的应用程序。的wkhtmltopdf节用于处理HTML并在许可证处理中提供依赖项。最后一行删除任何恰当的我们生成的列表不再需要了。

将以下代码添加到Dockerfile

#安装LEAD依赖项(https:/ / m.ahtuanjie.com/help/sdk/v22/main/api/getting-started-with-the-leadtools-linux-libraries-and-demo-projects.html)uuid- devuuid-runtime GCC g++ libc-dev-binLinux-libc-dev libx11-6 libx11-dev libxt6 \Libxt-dev sqlite3 libsqlite3-dev libfreetype6 \#安装微软字体/ / askubuntu.com/a/25614)& &回声"ttf- mscorefontts -installer mststcorefontts / accept_mscorefontts -eula选择true"| debconf-set-selections \&& apt install -y fontconfig ttf- mscorefontts -installer \#安装wkhtmltopdf/ / wkhtmltopdf.org)&& wget -q https:/ / github.com/wkhtmltopdf/packaging/releases/download/0.12.6 1/wkhtmltox_0.12.6 - 1. stretch_amd64.deb \&& apt install -y——allow-unauthenticated/ wkhtmltox_0.12.6 - 1. stretch_amd64.deb \&& ldconfig \清理APT缓存&& rm -rf /var/lib/apt/list /*

最后设置

在最后一节中,我们将进行最后的清理、最后的设置和初始化应用程序。

将容器当前目录设置为应用程序然后去掉临时目录,因为它不再需要。的内容/ app /目录中存储在buid-env节到应用程序文件夹中。最后,我们设置命令,入口点["dotnet", "DocumentService.dll"],当我们启动触发应用程序运行的容器时运行。

将以下代码添加到Dockerfile

#删除临时文件WORKDIR /应用程序运行rm -rf /temp命令# 80年公开#复制和部署应用程序COPY——from=build-env /app/out ./入口点(“dotnet”“DocumentService.dll”

创建一个Docker Ignore文件

接下来创建一个名为.dockerignore.Docker使用这个文件来忽略指定的文档。这将减少Docker构建项目所需的时间,因为它不必在构建时将整个项目迁移到容器中。将以下内容复制并粘贴到.dockerignore文件。

核心\ bin \核心\ obj \核心\ .vs \vs \ \。。\ vscode \

构建Docker容器

接下来打开终端然后迁移到DocumentServiceDotNet文件夹中。使用下面的命令:

Docker build -t documentservice

Docker可能需要几分钟才能完成。完成后,可以运行映像。

运行Docker容器

一旦Docker镜像可以运行,使用以下命令:

Docker运行-p 30000:80 documentservice

- pFlag绑定集装箱端口30000:80localhost: 30000.港口30000是因为文档查看器假定该端口可用于服务其请求。

转到浏览器并导航到http://localhost:30000.应该显示以下页面。

文档服务登陆页

总结

本教程展示了如何在Docker容器中设置LEADTOOLS文档服务并在本地主机上运行。

另请参阅

iOS
188金宝搏的网址客服|支持|联系我们|知识产权公告
©1991 - 2023领先科技有限公司版权所有。