<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      .net core項目docker部署

      此為手動打包更新版

      發布.net core程序,然后放到linux目錄:/data/app/docker_name 

      一、打包到容器

      1、安裝docker

       

      2、編寫Dockerfile  (放到目錄:/data/app/docker_name)

       1 #See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging.
       2 
       3 FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base
       4 WORKDIR /app
       5 
       6 FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build
       7 WORKDIR /src
       8 COPY . .
       9 
      10 RUN apt-get update -y
      11 RUN apt-get install -y libgdiplus
      12 RUN apt-get clean
      13 RUN ln -s /usr/lib/libgdiplus.so /usr/lib/gdiplus.dll
      14 
      15 RUN rm -f /etc/localtime && \
      16 ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
      17 
      18 ENTRYPOINT ["dotnet", "Api.dll"]

      下面內容為安裝.net core基礎依賴包,可根據自己選擇(如果服務器不可訪問外網,需要從本地導出image鏡像,在服務器導入image鏡像)

      1 FROM  mcr.microsoft.com/dotnet/aspnet:6.0 AS base
      2 WORKDIR /app
      3 
      4 FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build
      5 WORKDIR /src
      6 COPY . .

      下面內容為安裝libgdiplus,主要作用:由于window上操作圖片是Draw,但是linux上沒有,此時需要安裝libgdiplus,如果不需要可以刪掉

      1 RUN apt-get update -y
      2 RUN apt-get install -y libgdiplus
      3 RUN apt-get clean
      4 RUN ln -s /usr/lib/libgdiplus.so /usr/lib/gdiplus.dll

      下面內容為同步docker容器內部時間與宿主機時間(不設置會導致相差8小時)

      1 RUN rm -f /etc/localtime && \
      2     ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

       

      3、生成鏡像

      docker build -t docker_name:v1 .   

       

      4、運行容器

      docker run -dit --name docker_name --add-host www.baidu.com:192.168.1.100  -p 8888:8000  --log-driver json-file --log-opt max-size=5120m --log-opt max-file=2 --restart=always -v /data/app/docker_name:/src:rw docker_name:v1 /bin/bash

      -dit  不清楚

      --name docker_name  定義docker容器的名稱,如果不填會隨機分配一個名字,建議還是填一個

      --add-host www.baidu.com:192.168.1.100  設置host,如果一切沒問題,這個可以不要

      -p 8888:8000   設置端口映射,8888為宿主機端口,8000為docker內部端口,含義:訪問宿主機8888的時候,相當于訪問docker里的8000端口

      --log-driver json-file --log-opt max-size=5120m --log-opt max-file=2           --log-opt max-size=5120m為設置日志文件單個大小為 5120M         --log-opt max-file=2 設置文件最多為2個,多余的會刪掉      (這一步建議根據自己服務器設置,不設置的話會無限增長)

      --restart=always   設置會一直重啟,重啟dockers后會自啟動,防止以外終止

      -v /data/app/docker_name:/src:rw    服務器文件夾與docker里文件夾映射,含義:宿主機/data/app/docker_name 這個文件夾對應容器里的/src ,容器對這個文件夾具有 rw權限,r : 獨  w:寫,    重要文件最好都這樣,比如用戶上傳的圖片等,防止docker rm docker_name 后丟失

      docker_name:v1     image的名稱和版本號

      /bin/bash  不清楚

       

      5、此時,我們就可以訪問  http://127.0.0.1:8888了

       

      二、更新代碼

      手動更新:(需要執行兩個命令)

      1、發布程序,需要更新的dll打包到zip

      2、將zip上傳到/data/app/docker_name

      3、解壓zip,解壓命令:  unzip  zip_name.zip
      4、重啟容器,docker restart docker_name

      此時最新程序就更新了

       

      腳本更新:(只需要執行一個命令,包含備份和回滾)

      準備工作:

      1、新建文件夾 /data/bak

      2、新建文件夾 /data/bak/docker_name

      3、在/data/bak文件夾下新建文件  update.sh   和  bak.sh 兩個文件   

      以下是 update.sh 文件內容

      注:第30-32行,第39-41行,請替換成自己需要更新的文件

       1 echo ""
       2 echo ""
       3 echo ""
       4 echo ""
       5 echo ""
       6 echo "------------------------------------------------------------------------------------"
       7 echo "需要更新的文件:$1"
       8 
       9 mulu=/data/app
      10 
      11 cd $mulu/bak/docker_name
      12 
      13 echo "解壓文件 開始"
      14 unzip -o $1
      15 
      16 echo "文件解壓 完成"
      17 
      18 
      19 current_date=`date -d "-1 day" "+%Y%m%d_%H%M"`
      20 
      21 
      22 echo "備份文件夾名為 :$current_date"
      23 
      24 mkdir $current_date
      25 
      26 echo "創建備份文件夾成功"
      27 
      28 echo "將dll剪切到備份文件夾 start"
      29 
      30 cp $mulu/docker_name/api.dll $mulu/bak/docker_name/$current_date/api.dll
      31 cp $mulu/docker_name/api.exe $mulu/bak/docker_name/$current_date/api.exe
      32 cp $mulu/docker_name/api.pdb $mulu/bak/docker_name/$current_date/api.pdb
      33 
      34 echo "將dll剪切到備份文件夾 end"
      35 
      36 
      37 echo "將解壓完的dll剪切到程序所在目錄   start"
      38 
      39 mv $mulu/bak/docker_name/api.dll $mulu/docker_name/api.dll 
      40 mv  $mulu/bak/docker_name/api.exe $mulu/docker_name/api.exe
      41 mv $mulu/bak/docker_name/api.pdb $mulu/docker_name/api.pdb 
      42 
      43 echo "將解壓完的dll剪切到程序所在目錄   end"
      44 
      45 echo "啟動程序 start"
      46 echo ""
      47 
      48 echo "docker restart docker_name"
      49 
      50 docker restart docker_name
      51 
      52 echo ""
      53 echo "啟動結束 end"
      54 echo ""
      55 docker ps
      56 echo ""
      57 echo "這次備份的版本號為:$current_date,如果需要回滾,可以執行命令:   bash $mulu/bak/bak.sh $current_date"
      58 echo "------------------------------------------------------------------------------------"
      59 echo ""
      60 echo ""
      61 echo ""
      62 echo ""
      63 echo ""

      以下是bak.sh文件的內容

      注:第13-15行請替換成自己需要回滾的內容

       1 echo ""
       2 echo ""
       3 echo ""
       4 echo ""
       5 echo ""
       6 echo "------------------------------------------------------------------------------------"
       7 echo "需要回滾的版本號:$1"
       8 
       9 mulu=/data/app
      10 
      11 echo "將備份目錄[$1]的dll剪切到程序所在目錄   start"
      12 
      13 cp $mulu/bak/docker_name/$1/api.dll $mulu/docker_name/api.dll 
      14 cp $mulu/bak/docker_name/$1/api.exe $mulu/docker_name/api.exe
      15 cp $mulu/bak/docker_name/$1/api.pdb $mulu/docker_name/api.pdb 
      16 
      17 echo "將備份目錄[$1]的dll剪切到程序所在目錄   end"
      18 
      19 echo "啟動程序 start"
      20 
      21 docker restart base
      22 
      23 echo ""
      24 echo ""
      25 echo "啟動結束 end  回滾完成"
      26 echo "------------------------------------------------------------------------------------"
      27 echo ""
      28 echo ""
      29 echo ""
      30 echo ""
      31 echo ""
      32 docker ps

      更新步驟:

      1、發布程序,需要更新的dll打包到zip

      2、將zip上傳到/data/bak/docker_name

      3、cd /data/bak  

      4、bash update.sh  zip_name.zip     (每次更新替換zip_name)

      此時最新程序就更新了

      如果需要回滾請執行第4步出來的回滾語句

      posted @ 2025-03-27 17:37  光頭漢  閱讀(200)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 国产精品自在拍首页视频8| 激情四射激情五月综合网| 开心五月激情五月俺亚洲| 国语做受对白XXXXX在线| 大肉大捧一进一出视频| 欧美国产成人久久精品| 日本道高清一区二区三区| 成人午夜免费无码视频在线观看| 亚洲欧洲日韩国内精品| 四虎影院176| 欧洲中文字幕一区二区| 欧美日韩不卡视频合集| 中文字幕国产精品第一页| 九九热在线观看视频免费| 亚洲欧洲久久激情久av| 九九热在线观看精品视频| 成人亚欧欧美激情在线观看| 人妻久久久一区二区三区| 亚洲精品久久麻豆蜜桃| 国产精品一久久香蕉产线看| 九龙县| 免费观看激色视频网站| 国产成人精品无码播放| 国产精品久久久午夜夜伦鲁鲁| 国产AV国片精品有毛| 亚洲女同在线播放一区二区| 狠狠色狠狠综合久久| 国产色a在线观看| 久久精品国产91久久麻豆| 国产亚洲制服免视频| 国产精品普通话国语对白露脸| 国产大尺度一区二区视频| 激情自拍校园春色中文| 国产av不卡一区二区| 国产精品一区二区三区污| 国产精品老年自拍视频| 99热成人精品热久久66| 久久99国产一区二区三区| 成人国产乱对白在线观看| 日本韩国一区二区精品| 亚洲无人区一区二区三区|