Liunx服务器离线部署.NET Core 3.1项目

Liunx服务器离线部署.NET Core 3.1项目

  • 一、离线部署.Net Core3.1项目
    • 二、.NET Core3.1环境下载安装
    • 三、Docker部署程序
    • 方案二:直接服务启动

一、离线部署.Net Core3.1项目

由于项目都是离线安装,因此需要做一切的离线部署;
其实无论是项目离线还是非离线,离线部署提高了每次Build的时间,提高了工作效率。
1、方案一:.net core 部署再docker上需要build的十分痛苦需要访问微软的地址,此文完全使用docker镜像的方式直接离线部署。(下文主要讲解)
2、方案二:服务直接运行在Liunx服务器上(相对简单,文章最后也简单介绍下)
具体操作如下~~~~

二、.NET Core3.1环境下载安装

分别需要安装.NET Core3.1SDK、Docker离线包、微软的Build需要的镜像包:

  1. .NET Core3.1SDK
    1)下载上面下载的文件,copy到liunx系统文件下
    2)解压二进制文件
    mkdir -p /usr/local/dotnet
    tar zxf dotnet-sdk-3.1.403-linux-x64.tar.gz -C /usr/local/dotnet
    3)验证
    dotnet --version
  2. Docker离线包 ;密码:fts7
    安装方法;密码:9wbz
  3. 微软的Build需要的镜像包 ;密码:6o30
    安装docker后,执行:
    docker load < dotnet_core_aspnet.tar
    docker images #查看ID
    docker tag [这里修改成:ID] mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim

三、Docker部署程序

1、修改程序Dockfile文件如下

#环境运行时基础镜像
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base
#将当前目录内容.copy到镜像目录
COPY ./publish
#设置工作目录
WORKDIR /publish
#对外暴漏端口
EXPOSE 8080
#EXPOSE 443
#使用北京时间
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localting && echo'Asia/Shanghai' >/etc/timezone
#运行镜像入口命令和可执行文件名称
ENTRYPOINT["dotnet","~~xxxx~~  .dll"]

2、构造xxxx项目程序镜像
docker build -f Dockerfile -t xxxx:1.0 .
3、启动xxxx程序(映射配置文件到liunx系统上,开机启动)
docker run --restart=always --name xxxx -p 8080:8080 -v /home/config/xxxx/appsettings.json:/publish/appsetting.json -d xxxx:1.0

方案二:直接服务启动

1、将文件xxxx.service (此文件开机启动文件百度一堆)复制到/lib/systemd/system/下 端口:8080
仅作参考:

[Unit]
Description=xxxx sercice
  
[Service]
WorkingDirectory=/home/xxxx/
ExecStart=/usr/local/bin/dotnet /home/xxxx/xxxx.dll
Restart=always
RestartSec=10
  
[Install]
WantedBy=multi-user.target

2、启动服务、开机启动设置
systemctl start xxxx.service
systemctl enable xxxx.service

你可能感兴趣的:(c#实现,服务器,c#,linux,docker)