GVKun编程网logo

LindDotNetCore~docker里图像上生成中文乱码问题(docker图形显示)

14

本文的目的是介绍LindDotNetCore~docker里图像上生成中文乱码问题的详细情况,特别关注docker图形显示的相关信息。我们将通过专业的研究、有关数据的分析等多种方式,为您呈现一个全面的

本文的目的是介绍LindDotNetCore~docker里图像上生成中文乱码问题的详细情况,特别关注docker图形显示的相关信息。我们将通过专业的研究、有关数据的分析等多种方式,为您呈现一个全面的了解LindDotNetCore~docker里图像上生成中文乱码问题的机会,同时也不会遗漏关于.NET Core 的 Docker 容器目录乱码问题、.Net Core自动化部署之利用docker版jenkins部署dotnetcore应用的方法、.net – dotnet aspnetcore docker build失败,出现145错误代码、centos上使用docker运行dotnetcore项目的知识。

本文目录一览:

LindDotNetCore~docker里图像上生成中文乱码问题(docker图形显示)

LindDotNetCore~docker里图像上生成中文乱码问题(docker图形显示)

回到目录

因为docker上的大部分镜像都是基于linux系统的,所以在向图像中写中文时需要考虑中文字体问题,例如在microsoft/aspnetcore2.0这个镜像,它是基于debian系统的,它上面只有一个英文字体,所以在输出中文时会出现乱码,这是正常的,我们的解决方案也需要按着以下步骤即可!

问题表现

  1. linux系统上
  2. docker容器上
  3. dotnetcore System.Drawing输出文字上

解决思路

  1. dockerfile里动态安装中文字体,激活字体
  2. dotnetcore里使用新添加的字体,网上介绍很多的是文泉驿正黑,注意它的名字,不要写错,也可以使用字母名称WenQuanYi Zen Hei,注意它有空格的
  3. docker build --no-cache . 运行你的dockerfile生成新的镜像,docker run你的镜像即可

具体代码

一 dockerfile里动态添加字体和刷新

FROM microsoft/aspnetcore:2.0
WORKDIR /app
EXPOSE 80
RUN ls
COPY  publish  .
COPY sources.list /etc/apt/sources.list
RUN apt-get update && apt-get -y install libgdiplus 
RUN apt-get -y install fonts-wqy-zenhei && apt-get clean &&  fc-cache -fv
ENTRYPOINT ["dotnet", "FileUpload.dll"]

二 在System.Drawing里生产中文字体

Font fTitle = new Font("文泉驿正黑", 16);
Font fText = new Font("WenQuanYi Zen Hei", 9);

三 同时可以进入容器,查看已经安装过的中文字体

fc-list :lang=zh //:号前面有空格

事实上,通过显示的就是当前容器所在的linux操作系统支持的中文字体,你在图像上输出中文时,需要使用上面的字体!

对dotnetcore上的System.Drawing环境搭建可以查看我的这篇文章:DotNetCore跨平台~System.DrawingCore部署Linux需要注意的

感谢阅读!

回到目录

.NET Core 的 Docker 容器目录乱码问题

.NET Core 的 Docker 容器目录乱码问题

现象

使用 docker exec -ti <容器名> bash 进入容器,使用 ls 命令列出的数据里面,中文没有正常显示。

原因

就是对应的 Shell 字符集不正确的问题,调整对应的字符集为 UTF-8 即可。

解决

  1. 首先执行 locale -a,查看输出的内容里面是否有 C.UTF-8 字符集。

  2. 执行 locale 查看当前的字符集,如果均为 POSIX 说明有问题,需要进行变更。

  3. 变更的方法很简单,创建/更改一下环境变量即可。

    export LC_ALL="C.UTF-8"

    上面这种方法仅对当前会话有效,如果想永久生效,将上面这句话放到对应的 Shell 的 Profile 里面即可。

.Net Core自动化部署之利用docker版jenkins部署dotnetcore应用的方法

.Net Core自动化部署之利用docker版jenkins部署dotnetcore应用的方法

前言

本文主要介绍了关于.Net Core自动化部署用docker版jenkins部署dotnetcore应用的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的实现步骤吧。

安装docker版jenkins

因为jenkins的docker版本本身没有 dotnetcore的环境,所以我们需要先自己动手制作下包含dotnet环境的jenkins Docker Container

Dockerfile

FROM jenkins/jenkins

# Switch to root to install .NET Core SDK
USER root

# Show distro information!
RUN uname -a && cat /etc/*release

# Based on instructiions at https://www.microsoft.com/net/download/linux-package-manager/debian9/sdk-current
# Install dependency for .NET Core 2
RUN apt-get update
RUN apt-get install -y curl libunwind8 gettext apt-transport-https

# Based on instructions at https://www.microsoft.com/net/download/linux-package-manager/debian9/sdk-current
# Install microsoft.qpg
RUN curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg
RUN mv microsoft.gpg /etc/apt/trusted.gpg.d/microsoft.gpg
RUN sh -c ''echo "deb [arch=amd64] https://packages.microsoft.com/repos/microsoft-debian-stretch-prod stretch main" > /etc/apt/sources.list.d/dotnetdev.list''

# Install the .NET Core framework
RUN apt-get update
RUN apt-get install -y dotnet-sdk-2.1.4

# Switch back to the jenkins user.
USER jenkins

为了方便我已经把配置信息放到了github上大家可以访问直接使用

https://github.com/YahuiWong/jenkins-dotnet-core (本地下载)

使用步骤

初始化docker环境

git clone https://github.com/YahuiWong/jenkins-dotnet-core.git
cd jenkins-dotnet-core
sh init.sh
docker-compose up -d

初始化配置jenkins

  • Open ip:8080 on the browser
  • vi jenkins_home/secrets/initialAdminPassword & Set the initialAdminPassword string to your jenkins page

至此安装完毕。

配置jenkins构建dotent core的任务

构建一个自由风格的软件项目

配置源码管理资料

注意:初次配置的话 需要在 添加一个可以访问代码地址的 Credentials

配置构建脚本

如下图步骤添加打包脚本

打包脚本示例

echo ''============查看打包环境================'' 
pwd
ls
echo $PATH
whoami
which dotnet
dotnet --info
dotnet --version
echo ''============================begin restore=======================================''
dotnet restore
echo ''============================end restore=======================================''
echo ''============================cd project=======================================''
cd ./您的项目路径
echo ''============================begin build=======================================''
dotnet build # 为了生成XML注释文件 用于swagger注释
rm -rf $WORKSPACE/jenkins_publish
mkdir $WORKSPACE/jenkins_publish
dotnet publish -c:Release -o $WORKSPACE/jenkins_publish # 如果针对给定运行时发布项目带上-r 如:-r centos.7-x64
cp ./bin/Debug/netcoreapp2.0/您的项目路径.xml $WORKSPACE/jenkins_publish/ # 拷贝swagger注释
echo ''============================end build=======================================''

配置发布途径

发布插件Publish Over FTP使用说明

我这里使用的是 jenkins的Publish Over FTP插件,安装好此插件之后在 系统管理->系统设置->Publish over FTP 里可以新增一个你要发布的ftp服务器信息。为了保证ftp可以正常连接建议尝试下右下角的Test Configuration确认success

上面我们已经配置好Publish Over FTP要用的ftp账号,新增我们新增构建后操作如下图选择此插件

然后选择配置好的ftp选项,配置如下所示

注意:这里的配置信息中 jenkins_publish是和打包脚本对应的

保存打包任务

立即构建

点击立即构建之后,把构建任务开始进行中

如果想看的实时的构建信息可以点击如下图看到控制台输出

构建完毕

打开部署站点地址,发现站点已经运行起来了

重点说明

Nuget配置说明

如果您的.NET CORE项目使用的了第三方或者自建nuget服务,您需要在 配置下 jenkins_home/.nuget/NuGet/NuGet.Config的信息

如我的使用了国内博客园的nuget加速地址和自建的nuget服务配置如下

<?xml version="1.0" encoding="utf-8"?>
<configuration>
 <packageSources>
  <add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
  <add key="nuget.cnblogs.com" value="https://nuget.cnblogs.com/v3/index.json" />
  <add key="dotnet.myget.org/F/aspnetcore-dev/api/v3/index.json" value="https://dotnet.myget.org/F/aspnetcore-dev/ap
i/v3/index.json" />
  <add key="192.168.1.32:9001/nuget" value="http://192.168.1.32:9001/nuget" />
 </packageSources>
 <packageRestore>
  <add key="enabled" value="True" />
  <add key="automatic" value="True" />
 </packageRestore>
 <bindingRedirects>
  <add key="skip" value="False" />
 </bindingRedirects>
 <packageManagement>
  <add key="format" value="0" />
  <add key="disabled" value="False" />
 </packageManagement>
</configuration>

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对的支持。

您可能感兴趣的文章:
  • .Net Core部署Docker容器
  • ASP.NET Core开发Docker部署
  • Docker安装部署Net Core实现过程解析
  • docker部署Asp.net core应用的完整步骤
  • Asp.net Core Jenkins Docker实现一键化部署的实现
  • 详解ASP.NET Core Docker部署
  • 使用Docker部署ASP.NET Core程序

.net – dotnet aspnetcore docker build失败,出现145错误代码

.net – dotnet aspnetcore docker build失败,出现145错误代码

我用this tutorial创建了我的第一个docker webapi项目.

我正在使用Windows 7(docker toolBox).

这就是我跑的:

dotnet new webapi

这是Dockerfile:

FROM microsoft/dotnet:latest
copY . /app
workdir /app

RUN ["dotnet","restore"]
RUN ["dotnet","build"]

EXPOSE 5000/tcp
ENV ASPNETCORE_URLS http://*:5000

ENTRYPOINT ["dotnet","run"]

这就是我创建图像的方式:

docker build -t mydemos:aspnetcorehelloworld .

这就是我创建和运行容器的方式:

docker run -d -p 8080:5000 -t mydemos:aspnetcorehelloworld

我的服务成功运行为docker容器.

然后,我尝试更改Dockerfile以处理aspnetcore基本映像:

从microsoft / dotnet:最新更改为FROM microsoft / aspnetcore:1.0.1

新的Dockerfile看起来像:

FROM microsoft/aspnetcore:1.0.1
copY . /app
workdir /app

RUN ["dotnet","run"]

现在,我尝试使用构建新图像

docker build -t mydemos:aspnetcorehelloworld1 .

我收到一个错误.这是构建日志:

Sending build context to Docker daemon 636.9 kB
Step 1/8 : FROM microsoft/aspnetcore:1.0.1
 ---> 2c7bbc508bb2
Step 2/8 : copY . /app
 ---> Using cache
 ---> 1d5b9bd908b3
Step 3/8 : workdir /app
 ---> Using cache
 ---> c1d5d091d111
Step 4/8 : RUN dotnet restore
 ---> Running in 8399e21caeb2
Did you mean to run dotnet SDK commands? Please install dotnet SDK from:
  http://go.microsoft.com/fwlink/?LinkID=798306&clcid=0x409
The command 'dotnet restore' returned a non-zero code: 145

我进入网址,重新安装的东西,我仍然得到一个错误.@H_301_68@我试图在同一命令行会话中使用dotnet cli命令,我成功了(dotnet restore工作).

我试图搜索这个错误,但无法找到任何解决方案.

我在这里错过了什么?我在多次和测试中得到这个145错误.

最佳答案
您使用的映像仅包含.NET Core运行时,而不包含SDK.尝试以下存储库中的基本映像:

https://hub.docker.com/r/microsoft/aspnetcore-build/

您的Dockerfile中包含以下行:

RUN ["dotnet","build"]

这意味着dotnet还原和dotnet构建命令正在您正在使用的映像中运行.由于您使用的图像没有安装SDK,因此无法找到这些命令,并且会在您看到时失败.我上面链接的存储库中的图像中安装了SDK,因此可以找到并执行dotnet restore和dotnet build命令.

安装SDK时使用基本映像的替代方法是在开发计算机上执行构建/发布过程,然后将已发布的输出复制到映像中.然后你的Dockerfile只需要查看以下内容:

FROM microsoft/aspnetcore:1.0.1
workdir /app
copY ./app .
ENTRYPOINT ["dotnet","TheNameOfYourProject.dll"]

请注意,现在在图像中运行的dotnet命令只是运行(预构建的)DLL的命令.这只需要运行时,而不是SDK.

centos上使用docker运行dotnetcore项目

centos上使用docker运行dotnetcore项目

1.创建一个项目asp.net core项目(启用docker支持,会有一个docker file)

2.将项目部署到centos

3.在centos上安装docker

参考: https://www.cnblogs.com/qgc1995/p/9553572.html

4.在项目目录构建镜像

docker build -t dockertest .
查看可用镜像
docker image ls
运行镜像
docker run --name=dockertestl -p 20005:5000 -d dockertest

5. docker的一些操作

停止容器
docker stop 停止容器ID
删除容器
docker rm 容器的id

 

 

 

参考:https://www.cnblogs.com/imstrive/p/10168940.html

     https://blog.csdn.net/yinlell/article/details/83748945

 

关于LindDotNetCore~docker里图像上生成中文乱码问题docker图形显示的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于.NET Core 的 Docker 容器目录乱码问题、.Net Core自动化部署之利用docker版jenkins部署dotnetcore应用的方法、.net – dotnet aspnetcore docker build失败,出现145错误代码、centos上使用docker运行dotnetcore项目等相关内容,可以在本站寻找。

本文标签: