当前位置: 首页 > news >正文

CentOS7使用Docker部署.net Webapi

1 准备WebApi项目

对于已存在的WebApi项目,需要添加Docker支持;
编码时,先设置好项目需要的端口号:program.cs中,app.Run("http://*:8000");设置端口为:8000

在VS中,选中项目:右键——添加——Docker支持,会自动添加Dockerfile文件

#See https://aka.ms/customizecontainer to learn how to customize your debug container and how Visual Studio uses this Dockerfile to build your images for faster debugging.#net 6 运行时支持
FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base
#Api部署路径
WORKDIR /app
#开放的端口
#EXPOSE 8000
#
#FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build
#ARG BUILD_CONFIGURATION=Release
#WORKDIR /src
#COPY ["TestWebApi.csproj", "."]
#RUN dotnet restore "./././TestWebApi.csproj"
#COPY . .
#WORKDIR "/src/."
#RUN dotnet build "./TestWebApi.csproj" -c $BUILD_CONFIGURATION -o /app/build
#
#FROM build AS publish
#ARG BUILD_CONFIGURATION=Release
#RUN dotnet publish "./TestWebApi.csproj" -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=false
#
#FROM base AS final
#WORKDIR /app
#COPY --from=publish /app/publish .
#注意:COPY.符号以及.符号之间均有空格
COPY . .
ENTRYPOINT ["dotnet", "TestWebApi.dll"]

2 正常进行项目发布

注意:若发布的项目中不包含Dockerfile文件,需要将文件拷贝进去

在这里插入图片描述

3 准备服务器环境,安装Docker

//准备环境,安装Docker
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
//下载安装Docker核心
sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
//设置Docker开机自启
systemctl enable  docker

4 将已发布的项目文件上传到服务器,使用WinSCP工具

WinSCP下载路径:https://winscp.net/download/WinSCP-6.3.2-Setup.exe/download

5 进入上传的WebApi部署文件夹下,构建镜像

docker build -t my-webapi .     //.表示当前根目录,镜像名:my-webapi

6 构建容器并运行

docker run --name 容器名 -d -p 8000:8000 镜像名   //暴露端口号:8000
//查看运行日志信息
docker logs --tail=8000 dotnetapitest

7 为保证服务正常运行,添加守护进程

//安装epel,据说这里面的软件包更丰富
yum install epel-release
//安装守护进程
yum install -y supervisor
systemctl enable supervisord # 开机自启动
systemctl start supervisord # 启动supervisord服务

8 打开守护进程的配置文件

cat /etc/supervisord.conf

在这里插入图片描述
红框部分表明在etc这个文件夹下的*.ini文件为守护进程的配置文件,可以自行配置

9 编写守护进程配置

//新建配置命令
sudo vi mywebapi.ini//配置内容
[program:mywebapi]                     #进程名称
command=dotnet TestWebApi.dll         #站点启动指令
directory=/temp/你的网站项目地址      #命令执行目录
environment=ASPNETCORE_ENVIRONMENT=production  #进程环境变量
user=root                              #启动进程的账户
stopsignal=INT
autostart=true                         #supervisord启动时,该进程是否自启动
autorestart=true
startsecs=2                            #自动重启时间间隔,秒
srdeer_logfile=/temp/xxx.err.log    #错误日志,相关路径必须存在
stdout_logfile=/temp/xxx.out.log   #输出日志

supervisor控制台指令:

//更新新的配置到supervisord,配置修改后需要执行
supervisorctl update
//查看所有应用
supervisorctl status
//重新启动配置中的所有程序
supervisorctl reload
//启动某个进程(program_name=你配置中写的程序名称)
supervisorctl start program_name
//重启某一进程 (program_name=你配置中写的程序名称)
supervisorctl restart program_name
//停止全部进程
supervisorctl stop all

10 守护进程启动应用需要安装.net

//将 Microsoft 包签名密钥添加到受信任密钥列表,并添加 Microsoft 包存储库
sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm
//安装sdk
sudo yum install dotnet-sdk-6.0  //注意自己开发使用的版本
//安装运行时,一般情况下安装sdk之后,无需执行当前命令
sudo yum install aspnetcore-runtime-6.0
//重启服务器,测试服务是否正常运行
reboot

11 若部署出现异常,可执行如下命令之后重新部署

//关闭容器
docker stop 容器名
//删除容器
docker rm 容器名
//删除镜像
docker rmi 镜像名

相关文章:

CentOS7使用Docker部署.net Webapi

1 准备WebApi项目 对于已存在的WebApi项目,需要添加Docker支持; 编码时,先设置好项目需要的端口号:program.cs中,app.Run("http://*:8000");设置端口为:8000在VS中,选中项目&#xf…...

Windows程序员用MAC:初始设置(用起来像win一些)

初级代码游戏的专栏介绍与文章目录-CSDN博客 初用Mac会有很多不习惯,特别是鼠标滚轮的滚动方向和windows是反的,还好是通过设置改变的。下面是我自己的设置。 目录 一、显示器设置 二、屏保、时钟、触发角 三、程序坞与菜单栏 四、安全性与隐私 五…...

基于深度学习YOLOv8+Pyqt5的工地安全帽头盔佩戴检测识别系统(源码+跑通说明文件)

wx供重浩:创享日记 对话框发送:318安全帽 获取完整源码源文件7000张已标注的数据集训练好的模型配置说明文件 可有偿59yuan一对一远程操作配置环境跑通程序 效果展示(图片检测批量检测视频检测摄像头检测) 基于深度学习YOLOv8Pyqt…...

csv编辑器是干什么的?

csv编辑器是一种用于编写、编辑和管理文本文件的工具。适用于 JetBrains IDE 系列的 CSV 编辑器插件,此插件将 CSV(逗号分隔值)作为一种语言引入 Jetbrains IDE,其中包含语法定义、结构化语言元素和关联的文件类型 (.c…...

计算机网络——物理层(奈氏准则和香农定理)

计算机网络——物理层(奈氏准则和香农定理) 失真码间串扰奈氏准则(奈奎斯特定理)极限数据率 噪声信噪比香农定理奈氏准则和香农定理的区别 前面我们已经了解一些数据通信的基本知识,没有看过上一篇得小伙伴可以点击这里…...

XML语言的学习记录3-解析

学习笔记: 一、 解析XML文档: 1.使用 XMLHttpRequest 对象,将xml文档放入XML DOM对象中: xmlhttpnew XMLHttpRequest(); xmlhttp.open("GET","books.xml",false); xmlhttp.send(); xmlDocxmlhttp.response…...

【Linux】cat vim 命令存在着什么区别?

Linux 中的 cat 命令和 vim 命令之间存在一些显著的区别! cat 命令 首先,cat命令主要用于连接并显示文件的内容。它的原含义是“连接(concatenate)”,可以将多个文件的内容连接起来,并输出到标准输出流中&…...

MeterSphere和Jmeter使用总结

一、MeterSphere 介绍 MeterSphere 是⼀站式开源持续测试平台,涵盖测试跟踪、接⼝测试、UI 测试和性能测试等,全 ⾯兼容 JMeter、Selenium 等主流开源标准,能够有效助⼒开发和测试团队在线共享协作,实现端到 端的测试管理跟踪…...

学习笔记Day8:GEO数据挖掘-基因表达芯片

GEO数据挖掘 数据库:GEO、NHANCE、TCGA、ICGC、CCLE、SEER等 数据类型:基因表达芯片、转录组、单细胞、突变、甲基化、拷贝数变异等等 常见图表 表达矩阵 一行为一个基因,一列为一个样本,内容是基因表达量。 热图 输入数据…...

如何将大华dav视频转mp4?一键无损清晰转换~

Digital Audio Video(DAV)文件格式源于数字监控领域,旨在解决视频监控数据的存储和回放问题。随着数字监控技术的发展,DAV格式逐渐成为监控设备记录视频的标准格式,广泛应用于安防系统、摄像头监控等场景。 MP4文件格式…...

数字化转型导师坚鹏:人工智能在金融机构数字化转型中的应用

人工智能在金融机构数字化转型中的应用 课程背景: 金融机构数字化转型离不开人工智能,在金融机构数字化转型中,人工智能起到至关重要的作用,很多机构存在以下问题: 不清楚人工智能产业对我们有什么影响?…...

部署Zabbix Agents添加使能监测服务器_Windows平台_MSI/Archive模式

Windows平台 一、从MSI安装Windows代理,添加Windows Servers/PC 概述 可以从Windows MSI安装包(32位或64位) 安装Zabbix agent 32位包不能安装在64位Windows中 所有软件包都支持TLS,配置TLS可选 支持UI和命令行的安装。 1、下载Agent代理程序,使用Agent2升级版,官网链接如…...

十一 超级数据查看器 讲解稿 详情6 导出功能

十一 超级数据查看器 讲解稿 详情6 导出功能 点击此处 以新页面 打开B站 播放当前教学视频 app下载地址 百度手机助手 下载地址4 ​ 讲解稿全文: 导出功能讲解 这节课我们讲解一下导出功能, 导出功能,可以将当前查到的信息导出成E…...

java遍历文件目录去除中文文件名

文章目录 一、原始需求二、maven依赖三、核心代码四、运行结果 一、原始需求 需要遍历文件目录及其子目录&#xff0c;找出包含中文字符的文件名&#xff0c;将中文字符去除。 二、maven依赖 pom.xml <dependency><groupId>org.apache.commons</groupId>&…...

LeetCode Python - 61. 旋转链表

目录 题目描述解法运行结果 题目描述 给你一个链表的头节点 head &#xff0c;旋转链表&#xff0c;将链表每个节点向右移动 k 个位置。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4,5], k 2 输出&#xff1a;[4,5,1,2,3] 示例 2&#xff1a; 输入&#xff1a;head…...

k8s client-java创建pod常见问题

1.配置Kubernetes连接&#xff1a; 使用Kubernetes的配置文件&#xff08;通常位于~/.kube/config&#xff09;或直接使用API服务器地址、认证信息等来配置客户端。 配置通常有两种模式&#xff0c;安全和不安全的配置模式&#xff0c;对认证要求严格就选用安全模式&#xff…...

C++——字符串、读写文件、结构体、枚举

个人简介 &#x1f440;个人主页&#xff1a; 前端杂货铺 &#x1f64b;‍♂️学习方向&#xff1a; 主攻前端方向&#xff0c;正逐渐往全干发展 &#x1f4c3;个人状态&#xff1a; 研发工程师&#xff0c;现效力于中国工业软件事业 &#x1f680;人生格言&#xff1a; 积跬步…...

vscode 运行 java 项目之解决“Build failed, do you want to continue”的问题

Visual Studio Code运行 java 起来似乎比 IDEA 更轻量、比 eclipse 更友好&#xff0c;是不可多得的现代编译法宝。 安装好官方推荐的 java 扩展包后&#xff0c;就可以运行 java 代码了。功能 比 code runner 强&#xff0c;支持 gradle、maven、普通java项目&#xff0c;运行…...

yocto编译测试

源码下载 git clone -b gatesgarth git://git.yoctoproject.org/poky lkmaolkmao-virtual-machine:~/yocto$ git clone -b gatesgarth git://git.yoctoproject.org/poky Cloning into poky... remote: Enumerating objects: 640690, done. remote: Counting objects: 100% (13…...

rsync+inotify-tools文件传输

目录 rsync rsync概述 rsync优缺点 rsync参数 rsync命令 rsync同步源 linux 安装rsync 安装rsync服务端 安装rsync客户端 windows 安装rsync rsync实践 inotify-tools inotify-tools概述 innotify-tools 命令、参数、事件 rsync客户端安装inotify-tools innotif…...

第19节 Node.js Express 框架

Express 是一个为Node.js设计的web开发框架&#xff0c;它基于nodejs平台。 Express 简介 Express是一个简洁而灵活的node.js Web应用框架, 提供了一系列强大特性帮助你创建各种Web应用&#xff0c;和丰富的HTTP工具。 使用Express可以快速地搭建一个完整功能的网站。 Expre…...

Cursor实现用excel数据填充word模版的方法

cursor主页&#xff1a;https://www.cursor.com/ 任务目标&#xff1a;把excel格式的数据里的单元格&#xff0c;按照某一个固定模版填充到word中 文章目录 注意事项逐步生成程序1. 确定格式2. 调试程序 注意事项 直接给一个excel文件和最终呈现的word文件的示例&#xff0c;…...

【kafka】Golang实现分布式Masscan任务调度系统

要求&#xff1a; 输出两个程序&#xff0c;一个命令行程序&#xff08;命令行参数用flag&#xff09;和一个服务端程序。 命令行程序支持通过命令行参数配置下发IP或IP段、端口、扫描带宽&#xff0c;然后将消息推送到kafka里面。 服务端程序&#xff1a; 从kafka消费者接收…...

如何在看板中体现优先级变化

在看板中有效体现优先级变化的关键措施包括&#xff1a;采用颜色或标签标识优先级、设置任务排序规则、使用独立的优先级列或泳道、结合自动化规则同步优先级变化、建立定期的优先级审查流程。其中&#xff0c;设置任务排序规则尤其重要&#xff0c;因为它让看板视觉上直观地体…...

srs linux

下载编译运行 git clone https:///ossrs/srs.git ./configure --h265on make 编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/srs.log 开放端口 默认RTMP接收推流端口是1935&#xff0c;SRS管理页面端口是8080&#xff0c;可…...

反射获取方法和属性

Java反射获取方法 在Java中&#xff0c;反射&#xff08;Reflection&#xff09;是一种强大的机制&#xff0c;允许程序在运行时访问和操作类的内部属性和方法。通过反射&#xff0c;可以动态地创建对象、调用方法、改变属性值&#xff0c;这在很多Java框架中如Spring和Hiberna…...

(转)什么是DockerCompose?它有什么作用?

一、什么是DockerCompose? DockerCompose可以基于Compose文件帮我们快速的部署分布式应用&#xff0c;而无需手动一个个创建和运行容器。 Compose文件是一个文本文件&#xff0c;通过指令定义集群中的每个容器如何运行。 DockerCompose就是把DockerFile转换成指令去运行。 …...

第 86 场周赛:矩阵中的幻方、钥匙和房间、将数组拆分成斐波那契序列、猜猜这个单词

Q1、[中等] 矩阵中的幻方 1、题目描述 3 x 3 的幻方是一个填充有 从 1 到 9 的不同数字的 3 x 3 矩阵&#xff0c;其中每行&#xff0c;每列以及两条对角线上的各数之和都相等。 给定一个由整数组成的row x col 的 grid&#xff0c;其中有多少个 3 3 的 “幻方” 子矩阵&am…...

dify打造数据可视化图表

一、概述 在日常工作和学习中&#xff0c;我们经常需要和数据打交道。无论是分析报告、项目展示&#xff0c;还是简单的数据洞察&#xff0c;一个清晰直观的图表&#xff0c;往往能胜过千言万语。 一款能让数据可视化变得超级简单的 MCP Server&#xff0c;由蚂蚁集团 AntV 团队…...

Yolov8 目标检测蒸馏学习记录

yolov8系列模型蒸馏基本流程&#xff0c;代码下载&#xff1a;这里本人提交了一个demo:djdll/Yolov8_Distillation: Yolov8轻量化_蒸馏代码实现 在轻量化模型设计中&#xff0c;**知识蒸馏&#xff08;Knowledge Distillation&#xff09;**被广泛应用&#xff0c;作为提升模型…...