本教程展示了如何在Docker容器中设置LEADTOOLS文档服务。
概述 | |
---|---|
总结 | 本教程介绍如何使用Docker设置LEADTOOLS文档服务。 |
完成时间 | 30分钟 |
Visual Studio项目 | 下载教程项目(49mb) |
平台 | ASP。网Application using Docker |
IDE | Visual Studio 2019、2022 |
开发许可 | 下载LEADTOOLS |
你将需要这些资源:
请注意
Docker最近改变了他们的许可政策:“Docker Desktop仍然对小型企业(少于250名员工,年收入低于1000万美元)、个人使用、教育和非商业开源项目免费。”
第一步是设置许可证文件。打开ServiceHelper.cs文件位于…\助手\ \ DocumentServiceDotNet \ src \工具.翻到368行,找到SetLicense
函数。中替换整个代码SetLicense
函数,在第422行,使用以下代码:
公共静态无效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变量中。
打开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-env
WORKDIR /应用程序
#复制一切并构建
拷贝。/
运行dotnet restore core/DocumentService。csproj \
&& dotnet发布-c发布- 0…/ / DocumentService.csproj核心
下一节Dockerfile
将在容器中设置运行时环境。
首先,它安装应用程序所需的运行时(相应更改以匹配,信息可在临时
并将Debian包源代码添加到sources.list
文件,以便能够利用和拉所需的依赖关系apt-get
.接下来,它设置一个容器环境DEBIAN_FRONTEND
变为非交互式,以防止通过安装依赖项请求任何确认或可选输入。最后,它更新apt-get
并安装apt-utils
和wget
以进一步方便安装其他依赖项。
将以下代码添加到Dockerfile
:
构建运行时映像(hub.docker.com/_/microsoft-dotnet-aspnet)
从mcr.microsoft.com/dotnet/core/aspnet: 2.1
WORKDIR / 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所需的依赖项,以便在容器中运行。
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-bin
Linux-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”]
接下来创建一个名为.dockerignore
.Docker使用这个文件来忽略指定的文档。这将减少Docker构建项目所需的时间,因为它不必在构建时将整个项目迁移到容器中。将以下内容复制并粘贴到.dockerignore
文件。
核心\ bin \
核心\ obj \
核心\ .vs \
vs \ \。
。\ vscode \
接下来打开终端然后迁移到DocumentServiceDotNet
文件夹中。使用下面的命令:
Docker build -t documentservice
Docker可能需要几分钟才能完成。完成后,可以运行映像。
一旦Docker镜像可以运行,使用以下命令:
Docker运行-p 30000:80 documentservice
的- pFlag绑定集装箱端口30000:80来localhost: 30000.港口30000是因为文档查看器假定该端口可用于服务其请求。
转到浏览器并导航到http://localhost:30000
.应该显示以下页面。
本教程展示了如何在Docker容器中设置LEADTOOLS文档服务并在本地主机上运行。