GVKun编程网logo

dotNet Core 3.1 使用 Aspose (部署 Docker)(.net core部署到docker)

25

关于dotNetCore3.1使用Aspose和部署Docker的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于.NetCore自动化部署之利用docker版jenkins部署dotnet

关于dotNet Core 3.1 使用 Aspose 部署 Docker的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于.Net Core自动化部署之利用docker版jenkins部署dotnetcore应用的方法、.net – dotnet aspnetcore docker build失败,出现145错误代码、62-docker-compose 结合 dockerfile 部署 springboot 应用、8天入门docker系列 —— 第五天 使用aspnetcore小案例熟悉容器互联和docker-compose一键部署等相关知识的信息别忘了在本站进行查找喔。

本文目录一览:

dotNet Core 3.1 使用 Aspose (部署 Docker)(.net core部署到docker)

dotNet Core 3.1 使用 Aspose (部署 Docker)(.net core部署到docker)

在之前的文章《dotNET Core 中使用 Aspose(部署 Docker)》中介绍了在 dotNet Core2.1 中使用 Aspose ,并部署到 Docker 中,现在 dotNET Core 升级到了 3.1 ,Docker 镜像发生了变化,一些依赖的安装也有些变化。

在 dotNet Core 2.1 中构建镜像可以使用下面的 Dockerfile:

[root@localhost core3.1_images_build]# vi Dockerfile
FROM microsoft/dotnet:2.1-aspnetcore-runtime
RUN apt-get update;
RUN apt-get install libfontconfig1 -y
RUN apt-get install libgdiplus -y
RUN ln -s /usr/lib/libgdiplus.so /lib/x86_64-linux-gnu/libgdiplus.so
RUN apt-get install -y libc6-dev

COPY . /app
COPY simhei.ttf /usr/share/fonts/
COPY simsunb.ttf /usr/share/fonts/
COPY simsun.ttc /usr/share/fonts/
COPY BSONGSJ.TTF /usr/share/fonts/
COPY cybsongsj.ttf /usr/share/fonts/
COPY hyktjn.ttf /usr/share/fonts/

COPY ./font/WINGDNG3.TTF /usr/share/fonts/
COPY ./font/WINGDNG2.TTF /usr/share/fonts/
COPY ./font/BSSYM7.TTF /usr/share/fonts/
COPY ./font/symbol.ttf /usr/share/fonts/
COPY ./font/wingding.ttf /usr/share/fonts/
COPY ./font/webdings.ttf /usr/share/fonts/
COPY ./font/segmdl2.ttf /usr/share/fonts/

WORKDIR /app

EXPOSE 80/tcp

本来升级到 3.1 应该是很顺利的,由于一个简单的失误,导致绕了一个大圈子。

在 dotNET Core 3.1 的官方镜像中已经安装了 libgdiplus 和 libc6 ,所以只用安装 libfontconfig1 就可以, Dockerfile 如下:

FROM mcr.microsoft.com/dotnet/core/aspnet:3.1
RUN apt-get update;
RUN apt-get install libfontconfig1 -y

COPY . /app
COPY simhei.ttf /usr/share/fonts/
COPY simsunb.ttf /usr/share/fonts/
COPY simsun.ttc /usr/share/fonts/
COPY BSONGSJ.TTF /usr/share/fonts/
COPY cybsongsj.ttf /usr/share/fonts/
COPY hyktjn.ttf /usr/share/fonts/

COPY ./font/WINGDNG3.TTF /usr/share/fonts/
COPY ./font/WINGDNG2.TTF /usr/share/fonts/
COPY ./font/BSSYM7.TTF /usr/share/fonts/
COPY ./font/symbol.ttf /usr/share/fonts/
COPY ./font/wingding.ttf /usr/share/fonts/
COPY ./font/webdings.ttf /usr/share/fonts/
COPY ./font/segmdl2.ttf /usr/share/fonts/

WORKDIR /app

EXPOSE 80/tcp

dotNet Core 框架升级到了 3.1,其他很多中间件也做了同步升级,包括 Aspose,但后来因为一些原因,Aspose 还是使用了原来的 18.7,对应的 libSkiaSharp.so  文件没有降级,最后发现,这个才是问题的所在

一开始,按照相同的方式在 3.1 的镜像中安装依赖,安装完成创建容器后,进入容器,使用 ldd libSkiaSharp.so 可以看看依赖是否安装完整,正常情况如下图:

libSkiaSharp.so 文件可以在这个地址中找到:https://github.com/mono/SkiaSharp/releases/tag/v1.60.3

依赖是完整的,但示例程序部署到容器后,依然报错,一开始没想到是 libSkiaSharp.so 文件的问题,思考方向是 3.1 和 2.1 的容器是不是有什么不一样,最终发现 3.1 使用的是 Debian GNU/Linux 10 发型版,而 2.1 是 9,尝试在 2.1 的镜像中安装 3.1 的运行时,以失败而告终。

另一个思路马上浮现出来,就是拉取 centos7 的基础镜像,在里面安装相关的依赖和运行时,先使用下面命令拉取基础镜像:

docker pull centos:7.4.1708

创建一个容器

docker run -itd --privileged -p 90:22 --name centos centos:7.4.1708 /usr/sbin/init

进入容器安装运行时

rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm
yum install aspnetcore-runtime-3.1

安装相关依赖

yum -y install fontconfig
yum -y install ttmkfdir
yum install libgdiplus-devel 
yum install glibc -y

如果发现安装时提示找不到组件包,可能需要切换源:

rpm -ivh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

重新构建容器运行示例程序,发现问题依然存在,这时就感觉不是 Core 3.1 镜像的原因了,然后找了一个干净的 centos 7 的服务器进行验证,装好运行时和相关依赖,将示例程序直接运行在 centos 7 中,出现和容器中同样的问题。基本可以排除是镜像的问题了。

将新的程序和之前 2.1 的程序进行对比,最终发现是 libSkiaSharp.so 文件不一致,替换 libSkiaSharp.so 文件后,centos 7 中运行正常,容器中也运行正常。

参考:

  • https://stackoverflow.com/questions/59208166/skiasharp-skimageinfo-exception-in-aspose-word-v18-8-0

  • https://www.cnblogs.com/xiaoxiaoqiye/p/13355344.html

  • https://docs.microsoft.com/zh-cn/dotnet/core/install/linux-centos

  • https://github.com/mono/SkiaSharp/releases/tag/v1.60.3

  • https://q.cnblogs.com/q/109061/

本文分享自微信公众号 - dotNET 跨平台(opendotnet)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与 “OSC 源创计划”,欢迎正在阅读的你也加入,一起分享。

.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.

62-docker-compose 结合 dockerfile 部署 springboot 应用

62-docker-compose 结合 dockerfile 部署 springboot 应用

dockerfile 内容:

# 基础镜像
FROM  openjdk:8-jre
# author
MAINTAINER lw

# 挂载目录
VOLUME /home/ybss
# 创建目录
RUN mkdir -p /home/ybss
# 指定路径
WORKDIR /home/ybss

ADD ./jar/lib /home/ybss/lib
ADD ./jar/*.yml /home/ybss/
# 复制jar文件到路径
COPY ./jar/run.jar /home/ybss/run.jar
# 启动认证服务
ENTRYPOINT ["java","-jar","-Dserver.port=9200","-Dspring.profiles.active=dev","run.jar"]

docker-compose.yml 内容:

version : ''3.8''
services:
  ybss-auth:
    container_name: ybss-auth
    build:
      context: ./ybss/auth
      dockerfile: dockerfile
    ports:
      - "19200:9200"
    volumes:
      - /home/ybss/ybss/auth/jar:/home/ybss

networks:
  ybss_default:
    driver: bridge

volumes 挂载目录 /home/ybss/ybss/auth/jar,有更新时,只需要把更新 jar 和文件替换即可。

部署脚本 shell:

#!/bin/sh
auth(){
  chmod 777 -R ./ybss/auth/*
  docker-compose up -d ybss-auth
}
stop(){
	docker-compose stop
}
case "$1" in
"auth")
	auth
;;
"s")
	stop
;;

8天入门docker系列 —— 第五天 使用aspnetcore小案例熟悉容器互联和docker-compose一键部署

8天入门docker系列 —— 第五天 使用aspnetcore小案例熟悉容器互联和docker-compose一键部署

 

  这一篇继续完善webnotebook,如果你读过上一篇的内容,你应该知道怎么去挂载webnotebook日志和容器的远程访问,但是这些还远不够,webnotebook

总要和一些数据库打交道吧,比如说MysqL,mongodb,redis,通常情况下这些存储设备要么是以容器的方式承载,要么是由DBA在非容器环境下统一管理。

 

一:webnotebook连接容器redis

       我们做一个小案例,把网站的所有PV记录到redis中,webnotebook前端显示当前你是 xxx 位用户,案例不重要,重要的是怎么去实现容器互联。

 

      在docker hub 上去找redis的官方镜像,具体redis该如何合理配置这里我就不管了,用最简单的一条docker run 跑起来再说。

[root@localhost data]# docker run --name some-redis -d redis
Unable to find image ''redis:latest'' locally
latest: Pulling from library/redis
6ae821421a7d: Pull complete 
e3717477b42d: Pull complete 
8e70bf6cc2e6: Pull complete 
0f84ab76ce60: Pull complete 
0903bdecada2: Pull complete 
492876061fbd: Pull complete 
Digest: sha256:dd5b84ce536dffdcab79024f4df5485d010affa09e6c399b215e199a0dca38c4
Status: Downloaded newer image for redis:latest
ed07890700a5cdb7d737a196c28009a9d1b08de35f55d51f53c80e6cfe6ba199
[root@localhost data]# 
[root@localhost data]# 
[root@localhost data]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED              STATUS              PORTS               NAMES
ed07890700a5        redis               "docker-entrypoint.s…"   About a minute ago   Up About a minute   6379/tcp            some-redis

    

    接下来安装 StackExchange.Redis,在Index这个Action中将当前的访问作为一个PV记录到redis中,不过下面的代码要注意一点的就是,为了去访问redis,

这里我采用了redis.webnotebook.com 去映射到redis容器的ip,映射关系可以在创建容器的时候自动追加到 /etc/hosts 中,每一次访问都执行一次Increment自

增操作。

   public class HomeController : Controller
    {
        static Logger logger = LogManager.GetLogger(SimpleDemo");
        static ConnectionMultiplexer redis = ConnectionMultiplexer.Connect(redis.webnotebook.com:6379);

        /// <summary>
        /// 读取mongodb数据数据
        </summary>
        <returns></returns>
        public IActionResult Index()
        {
            var db = redis.GetDatabase();

            var num = db.StringIncrement(count);

            ViewData[num"] = num;

            return View();
        }
    }

   

     在UI上,展示下你当前是多少位访客,就是这样。

<div ="text-center">
    h1 ="display-4">您是当前 @ViewData["num"]  位访客</h1p>Learn about a href="https://docs.microsoft.com/aspnet/core">building Web apps with ASP.NET Corea>.>
div>

     

     然后你就可以docker build,完了之后docker run时通过 --link  some-redis:redis.webnotebook.com  去指定一下就好了,some-redis是redis容器的名字,

redis.webnotebook.com 是这个some-redis别名,这样就方便的实现了 redis.webnotebook.com和容器ip的映射关系。

[root@localhost publish]# docker run -d --name webnotebook -p 8080:8080 --link some-redis:redis.webnotebook.com huangxincheng/webnotebook:v1
b931e040de26c4bfc0b49cbc8e626cdcb30ad9bdff523f623c0a2d6c50899a81
[root@localhost publish]# 
[root@localhost publish]# 
[root@localhost publish]# docker 
CONTAINER ID        IMAGE                          COMMAND                  CREATED             STATUS              PORTS                    NAMES
b931e040de26        huangxincheng/webnotebook:v1   dotnet WebNotebook.…"   2 seconds ago       Up 2 seconds        0.0.0.0:8080->8080/tcp   webnotebook
ed07890700a5        redis                          27 minutes ago      Up 27 minutes       6379/tcp                 some-redis

       有些人可能就好奇了,到底webnotebook容器内的/etc/hosts真的修改了吗? 接下来你可以通过 docker exec 到webnotebook容器去看一下就好啦,

从下面标红的地方可以看到,172.17.0.2 已经和 xxx.com 做了映射。

[root@localhost publish]# docker exec -it webnotebook /bin/bash
root@b931e040de26:/data# cat /etc/hosts
127.0.0.1    localhost
::1    localhost ip6-localhost ip6-loopback
fe00::0    ip6-localnet
ff00::mcastprefix
ff02::1    ip6-allnodes
ff02::2    ip6-allrouters
172.17.0.2    redis.webnotebook.com ed07890700a5 some-redis
172.17.0.3    b931e040de26
root@b931e040de26:/data# 

 

     回到文章开头的问题,如果redis是在远程宿主机上部署的,那我的webnotebook容器该怎么访问呢?你可能会说,直接通过ip访问即可,但是为了保持

统一性,我还是希望通过redis.webnotebook.com 这个域名进行访问,也就是说怎么去把这个映射关系追加到容器中呢?可以使用-- add-host来实现。

[root@localhost publish]#  docker run -d --name webnotebook -p --add-host redis.webnotebook.com:172.17.0.2 huangxincheng/webnotebook:v1
91e7d9c1b575cc34ae98eebfc437d081b852f450104e2b368f898299852b0f18
[root@localhost publish]# docker exec -it webnotebook /bin/bash
root@91e7d9c1b575:/data# 172.17.0.2    redis.webnotebook.com
    91e7d9c1b575
root@91e7d9c1b575:/data# 

   

二:docker-compose 容器编排

      目前我们仅引入了redis,这样有了两个容器,但随着业务的增加,你可能还需要MysqL,ssdb,rabbitmq,Nginx等服务,而docker建议的就是一个容器

一个进程,那为了能顺利承载这些服务,你可能需要部署6个容器,如果你还是按照老一套的方法一个一个的去部署,操作起来就比较乱,有没有一种方式可

以让docker自动帮我们一键部署好这些容器呢? 就好像dockerfile那样自动化部署,当然有了,那就是docker-compose 容器编排。

 

1. 安装

    官网地址:https://docs.docker.com/compose/install/#install-compose  然后按照步骤一步一步来就好了,最后通过docker-compose --version 看一下即可。

[root@localhost publish]# sudo curl -L https://github.com/docker/compose/releases/download/1.23.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
[root@localhost publish]# sudo chmod +x /usr/local/bin/docker-compose
[root@localhost publish]# docker-compose --version
docker-compose version 1.22.0,build f46880fe
[root@localhost publish]#

 

2. 编写docker-compose 

    docker-compose的所有命令都在 https://docs.docker.com/compose/compose-file/  上面找得到,如果有兴趣可以查看一下。

version: 3.0
services:
  webnotebook:
    container_name: webnotebook
    build: 
      context: .
      dockerfile: ./Dockerfile
    depends_on:
      - redis
    links:
      - redis:redis.webnotebook.com
    ports:
      - 8080:8080
  redis:
   container_name: some-redis
   image: redis

 

   上面的配置看起来不难吧,如果不知道参数的意思,还是那句话,查看官方文档, 最后你可以使用 docker-compose up --build 跑起来,或者使用 -d 参数

进行后台运行。

[root@localhost publish]# docker-compose up --build
Building webnotebook
Step 1/9 : FROM microsoft/dotnet:2.2-aspnetcore-runtime
 ---> dad26d192ae6
Step 2/9 : ENV TZ Asia/Shanghai
 ---> Using cache
 ---> 72535a350c5d
Step 3/9 : LABEL author hxc@qq.com
 ---> d4dcb4ba06aa
Step 4/9 : RUN mkdir /data
 ---> 6bbfc1537e42
Step 5/9 : copY ./ / 5401b74ec21f
Step 6/9 : workdir / d93e7949b527
Step 7/9 : VOLUME /data/log
 ---> 39c4285c6d6c
Step 8/9 : EXPOSE 8080
 ---> d02932ddfbcc
Step 9/9 : CMD [ dotnet",WebNotebook.dll ]
 ---> 0572ceea51a1
Successfully built 0572ceea51a1
Successfully tagged publish_webnotebook:latest
Starting some-redis ... done
Starting webnotebook ... 
Attaching to some-redis,webnotebook
some-redis     | 1:C 22 Feb 2019 09:11:03.160 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
some-redis     | 03.160 # Redis version=5.0.3,bits=64,commit=00000000,modified=0,pid=1dis     | 03.160 # Warning: no config file specified,using the default config. In order to specify a config file use redis-server /path/to/redis.conf
some-redis     | 1:M 03.161 * Running mode=standalone,port=6379.
some-redis     | 03.161 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 12803.161 # Server initialized
some-redis     | 03.161 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add vm.overcommit_memory = 1'' to /etc/sysctl.conf and then reboot or run the command sysctl vm.overcommit_memory=1''  this to take effect.
some-redis     | 03.161 # WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix this issue run the command echo never > /sys/kernel/mm/transparent_hugepage/enabled'' as root,and add it to your /etc/rc.local in order to retain the setting after a reboot. Redis must be restarted after THP is disabled.
some-redis     | 03.161 * Ready to accept connections
webnotebook    | : Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager[]
webnotebook    |       User profile is available. Using /root/.aspnet/DataProtection-Keys as key repository; keys will not be encrypted at rest.
webnotebook    | Hosting environment: Production
webnotebook    | Content root path: /data
webnotebook    | Now listening on: http://[::]:8080
webnotebook    | Application started. Press Ctrl+C to shut down.

非常简单吧,只要我有一个docker-comose文件就可以实现一键部署,好了,希望本篇对你有帮助。

 

总结

以上是小编为你收集整理的8天入门docker系列 —— 第五天 使用aspnetcore小案例熟悉容器互联和docker-compose一键部署全部内容。

如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。

我们今天的关于dotNet Core 3.1 使用 Aspose 部署 Docker的分享就到这里,谢谢您的阅读,如果想了解更多关于.Net Core自动化部署之利用docker版jenkins部署dotnetcore应用的方法、.net – dotnet aspnetcore docker build失败,出现145错误代码、62-docker-compose 结合 dockerfile 部署 springboot 应用、8天入门docker系列 —— 第五天 使用aspnetcore小案例熟悉容器互联和docker-compose一键部署的相关信息,可以在本站进行搜索。

本文标签:

上一篇.NET Core 使用 Consul 服务注册发现(.net 服务注册与发现)

下一篇eShopOnContainers 知多少 [12]:Envoy gateways(eshoponcontainer讲解)