用集装箱装LEADTOOLS与码头工人,c# . net应用程序的核心

本教程展示了如何建立一个。net核心控制台应用程序在一个码头工人容器使用LEADTOOLS SDK。

概述
总结 本教程介绍了如何用集装箱装一个。net核心控制台应用程序使用LEADTOOLS码头工人。
完成时间 30分钟
平台 net核心控制台应用程序使用码头工人
IDE Visual Studio 2017中,2019年
开发许可 下载LEADTOOLS

所需的知识

在工作之前用集装箱装。net核心应用程序与码头工人——c#。net核心教程中,确保您安装LEADTOOLS SDK以及码头工人桌面。如果你没有下载,使用下面的链接访问各自的安装程序。

准备项目和码头工人使用

定位。net核心控制台项目文件夹。

一旦您希望使用. net核心项目,重命名项目的文件夹结构< PROJECT_NAME > \ App \ < PROJECT_NAME.csproj >。确保您将所有所需的文件和文件夹项目进入应用程序目录.csproj所在地。

下一个的应用程序文件夹中创建一个新文件夹数据,它将包含任何外部资源所需的应用程序(即图片加载的应用程序)。编辑您的代码在加载文件从本地路径和修改的数据文件夹一样,/应用程序/数据/ < FILE_NAME >,在那里< FILE_NAME >是你是加载文件的名称。

如果你设置LEADTOOLS许可证,创建一个新文件夹许可证App \数据目录,并把你的Leadtools.licLeadtools.lic.key文件存在。编辑您的代码的应用程序看起来以下文件路径加载您的许可文件:

码头工人文件创建

导航到< PROJECT_NAME >文件夹中包含应用程序目录中。创建一个新文件命名Dockerfile。这个文件将包含所有的指令构建集装箱码头工人。的Dockerfile指示在集装箱码头工人安装所需的依赖项。

建立项目文件

这部分的Dockerfile建立项目文件将运行在容器中。首先,它安装SDK应用程序所需的(相应改变以匹配、信息发现hub.docker.com/_microsoft-dotnet-sdk)。

接下来,它集容器的当前目录/应用程序和所有副本.csproj文件在本地应用程序目录的容器应用程序目录和恢复项目。

它在当地的所有必要的文件副本应用程序应用/数据目录的容器应用程序/应用程序/ /数据目录。最后,它发布的发布版本项目容器的app /出目录中。

将下面的代码添加到Dockerfile:

# # #建筑项目(hub.docker.com/_/microsoft-dotnet-sdk)从mcr.microsoft.com/dotnet/core/sdk:3.1 build-envWORKDIR /应用程序# CSPROJ复制和恢复复制/ App / \ *。csproj。/dotnet恢复运行#复制一切其他的并建立复制/ App /副本。/ App /数据/ /数据运行dotnet发布- o - c版本。/ /

设置运行时环境

下一个部分Dockerfile将在容器设置运行时环境。

首先,它安装运行时所需的应用程序(匹配相应的变化,信息发现hub.docker.com/_microsoft-dotnet-sdk)。然后设置容器当前目录临时并添加源的debian软件包sources.list文件能够通过利用,把所需的依赖项apt-get。接下来,它设置一个容器环境DEBIAN_FRONTEND非交互式防止确认或可选的输入请求通过安装依赖关系。最后,它更新apt-get和安装apt-utilswget进一步促进安装其他的依赖关系。

将下面的代码添加到Dockerfile:

# # #建筑运行时图像(hub.docker.com/_microsoft-dotnet-runtime)从mcr.microsoft.com/dotnet/core/runtime:3.1WORKDIR / temp#添加包源运行回声”黛比http://ftp.us.debian.org/debian拉伸主要contrib”> > /etc/apt/sources.list#生成恰当的缓存ENV DEBIAN_FRONTEND非交互的运行apt-get更新\& & apt-get安装- y apt-utils wget

设置LEADTOOLS依赖性

本节安装所需的依赖项LEADTOOLS为了在容器中运行。

微软字体部分只需要与一个GUI应用程序。的wkhtmltopdf部分需要处理HTML和提供依赖项许可处理。删除最后一行恰当的列出我们生成的,因为他们不再需要。

将下面的代码添加到Dockerfile:

#安装导致依赖性(https:/ /m.ahtuanjie.com/help/sdk/v21/main/api/getting-started-with-the-leadtools-linux-libraries-and-demo-projects.html)运行apt-get安装- y \uuid- devuuid运行gcc g++ libc-dev-bin \linux-libc-dev libx11-6 libx11-dev libxt6 \libxt-dev sqlite3 libsqlite3-dev libfreetype6#安装微软字体(http:/ /askubuntu.com/a/25614)#运行回声“ttf-mscorefonts-installer msttcorefonts / accepted-mscorefonts-eula选择真正的“| debconf-set-selections#运行apt-get安装- y \# fontconfig ttf-mscorefonts-installer#安装wkhtmltopdf (http:/ / wkhtmltopdf.org)wget - q https运行:/ /github.com/wkhtmltopdf/packaging/releases/download/0.12.6 buster_amd64.deb——1/wkhtmltox_0.12.6 - 1.运行apt安装- y -允许匿名\/ wkhtmltox_0.12.6 - 1. buster_amd64.deb运行ldconfig#清理缓存运行rm射频/var/lib/apt/lists/*

最后设置

在最后一节中,我们做最后的清理,最后设置,并指定如何初始化应用程序。

设置容器当前目录应用程序和删除临时目录我们上面,因为它不再是必要的。如果您的应用程序是一个基于web的应用程序,取消80年公开所以您的应用程序将监听端口80。根据需要更改端口号。粘贴的内容/ app /目录存储在容器中buid-env部分的应用程序文件夹中。最后,我们设置命令,dotnet < PROJECT_NAME > . dll当我们开始跑,触发应用程序运行的容器。

将下面的代码添加到Dockerfile:

#删除临时文件WORKDIR /应用程序运行rm射频/ temp# 80年公开#复制并部署应用程序复制——从= build-env / app /。/入口点(“dotnet”,“< PROJECT_NAME > . dll”]

请注意

编辑入口点(“dotnet”、“< PROJECT_NAME >。dll”)线的地方< PROJECT_NAME >是你的项目dll文件的名称。

创建一个码头工人忽略文件

在相同的目录中创建另一个文件Dockerfile命名.dockerignore。这个文件是使用的码头工人忽略指定的文件和目录。这将减少码头工人的时间需要构建项目,因为它不会将整个目录迁移到容器正在建造中。

添加以下的.dockerignore文件:

本\obj \

运行该项目

构建集装箱码头工人

打开命令提示符/终端Windows PowerShell并导航到您的项目目录中包含Dockerfile使用下面的命令:

cd“< PathToProject >”

构建和集装箱码头工人的名字< PROJECT_NAME >所有的小写字母和一个词,使用下面的脚本:

码头工人建造- - - - - -t < PROJECT_NAME >。

为码头工人可能需要几分钟才能完成。一旦完成,就可以运行。

运行该集装箱码头工人

一旦建码头工人形象,使用下面的命令运行容器:

码头工人运行< PROJECT_NAME >

请注意

你需要包装Console.Read在你的代码在while循环捕获输入。此外,码头工人应用程序需要运行在交互模式下为了捕捉输入。看下面的例子。

代码以捕获回车键退出:

c#
(真正的){Console.WriteLine (“新闻(x)退出……”);var确认= Console.ReadLine ()。Substring (0,1);如果(confirmation.Equals (“x”,StringComparison.OrdinalIgnoreCase)){打破;}}Console.WriteLine (“应用程序退出。”);

码头工人运行命令

如果您的应用程序需要用户输入,您需要运行下面的命令,允许交互。

码头工人运行- - - - - -我< PROJECT_NAME >

如果您的应用程序保存一个文件,你可以通过下面的命令直接到一个本地目录。这将复制任何容器的/应用程序/数据/输出文件夹到本地C: / Temp目录中。

码头工人运行- - - - - -v/c/温度:/应用程序/数据/输出< PROJECT_NAME >

总结

本教程展示了如何用集装箱装一个。net核心控制台应用程序在一个码头工人容器。

另请参阅

net
iOS
188金宝搏的网址客服|支持|联系我们|知识产权的通知
©1991 - 2021领先的技术公司。保留所有权利。