惠州专业网站建设价格,网站推广的案例,侗族网站建设,lnmp wordpress tp1 准备WebApi项目
对于已存在的WebApi项目#xff0c;需要添加Docker支持#xff1b;
编码时#xff0c;先设置好项目需要的端口号#xff1a;program.cs中#xff0c;app.Run(http://*:8000);设置端口为#xff1a;8000在VS中#xff0c;选中项目#xf…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_CONFIGURATIONRelease
#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_CONFIGURATIONRelease
#RUN dotnet publish ./TestWebApi.csproj -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHostfalse
#
#FROM base AS final
#WORKDIR /app
#COPY --frompublish /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 docker4 将已发布的项目文件上传到服务器使用WinSCP工具
WinSCP下载路径https://winscp.net/download/WinSCP-6.3.2-Setup.exe/download
5 进入上传的WebApi部署文件夹下构建镜像
docker build -t my-webapi . //.表示当前根目录镜像名my-webapi6 构建容器并运行
docker run --name 容器名 -d -p 8000:8000 镜像名 //暴露端口号8000
//查看运行日志信息
docker logs --tail8000 dotnetapitest7 为保证服务正常运行添加守护进程
//安装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] #进程名称
commanddotnet TestWebApi.dll #站点启动指令
directory/temp/你的网站项目地址 #命令执行目录
environmentASPNETCORE_ENVIRONMENTproduction #进程环境变量
userroot #启动进程的账户
stopsignalINT
autostarttrue #supervisord启动时该进程是否自启动
autorestarttrue
startsecs2 #自动重启时间间隔秒
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 all10 守护进程启动应用需要安装.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
//重启服务器测试服务是否正常运行
reboot11 若部署出现异常可执行如下命令之后重新部署
//关闭容器
docker stop 容器名
//删除容器
docker rm 容器名
//删除镜像
docker rmi 镜像名