網(wǎng)站還沒上線怎么做品牌推廣友情鏈接的四個(gè)技巧
1 準(zhǔn)備WebApi項(xiàng)目
對于已存在的WebApi項(xiàng)目,需要添加Docker支持;
編碼時(shí),先設(shè)置好項(xiàng)目需要的端口號:program.cs中,app.Run("http://*:8000");設(shè)置端口為:8000
在VS中,選中項(xiàng)目:右鍵——添加——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 運(yùn)行時(shí)支持
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 正常進(jìn)行項(xiàng)目發(fā)布
注意:若發(fā)布的項(xiàng)目中不包含Dockerfile文件,需要將文件拷貝進(jìn)去
3 準(zhǔn)備服務(wù)器環(huán)境,安裝Docker
//準(zhǔn)備環(huán)境,安裝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
//設(shè)置Docker開機(jī)自啟
systemctl enable docker
4 將已發(fā)布的項(xiàng)目文件上傳到服務(wù)器,使用WinSCP工具
WinSCP下載路徑:https://winscp.net/download/WinSCP-6.3.2-Setup.exe/download
5 進(jìn)入上傳的WebApi部署文件夾下,構(gòu)建鏡像
docker build -t my-webapi . //.表示當(dāng)前根目錄,鏡像名:my-webapi
6 構(gòu)建容器并運(yùn)行
docker run --name 容器名 -d -p 8000:8000 鏡像名 //暴露端口號:8000
//查看運(yùn)行日志信息
docker logs --tail=8000 dotnetapitest
7 為保證服務(wù)正常運(yùn)行,添加守護(hù)進(jìn)程
//安裝epel,據(jù)說這里面的軟件包更豐富
yum install epel-release
//安裝守護(hù)進(jìn)程
yum install -y supervisor
systemctl enable supervisord # 開機(jī)自啟動
systemctl start supervisord # 啟動supervisord服務(wù)
8 打開守護(hù)進(jìn)程的配置文件
cat /etc/supervisord.conf
紅框部分表明在etc這個(gè)文件夾下的*.ini文件為守護(hù)進(jìn)程的配置文件,可以自行配置
9 編寫守護(hù)進(jìn)程配置
//新建配置命令
sudo vi mywebapi.ini//配置內(nèi)容
[program:mywebapi] #進(jìn)程名稱
command=dotnet TestWebApi.dll #站點(diǎn)啟動指令
directory=/temp/你的網(wǎng)站項(xiàng)目地址 #命令執(zhí)行目錄
environment=ASPNETCORE_ENVIRONMENT=production #進(jìn)程環(huán)境變量
user=root #啟動進(jìn)程的賬戶
stopsignal=INT
autostart=true #supervisord啟動時(shí),該進(jìn)程是否自啟動
autorestart=true
startsecs=2 #自動重啟時(shí)間間隔,秒
srdeer_logfile=/temp/xxx.err.log #錯(cuò)誤日志,相關(guān)路徑必須存在
stdout_logfile=/temp/xxx.out.log #輸出日志
supervisor控制臺指令:
//更新新的配置到supervisord,配置修改后需要執(zhí)行
supervisorctl update
//查看所有應(yīng)用
supervisorctl status
//重新啟動配置中的所有程序
supervisorctl reload
//啟動某個(gè)進(jìn)程(program_name=你配置中寫的程序名稱)
supervisorctl start program_name
//重啟某一進(jìn)程 (program_name=你配置中寫的程序名稱)
supervisorctl restart program_name
//停止全部進(jìn)程
supervisorctl stop all
10 守護(hù)進(jìn)程啟動應(yīng)用需要安裝.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 //注意自己開發(fā)使用的版本
//安裝運(yùn)行時(shí),一般情況下安裝sdk之后,無需執(zhí)行當(dāng)前命令
sudo yum install aspnetcore-runtime-6.0
//重啟服務(wù)器,測試服務(wù)是否正常運(yùn)行
reboot
11 若部署出現(xiàn)異常,可執(zhí)行如下命令之后重新部署
//關(guān)閉容器
docker stop 容器名
//刪除容器
docker rm 容器名
//刪除鏡像
docker rmi 鏡像名