1.部署歷史 猿友們好,作為初來實習的我,已經遭受社會的“毒打”,所以請容許我在下麵環節適當吐槽,3Q! 傳統部署 回顧以往在伺服器部署webapi項目(非獨立發佈),dotnet環境、守護進程兩個逃都逃不掉,正常情況下還得來個nginx代理。不僅僅這仨,可能牽扯到yum或npm。node等都要 ...
1.部署歷史
猿友們好,作為初來實習的我,已經遭受社會的“毒打”,所以請容許我在下麵環節適當吐槽,3Q!
傳統部署
回顧以往在伺服器部署webapi項目(非獨立發佈),dotnet環境、守護進程兩個逃都逃不掉,正常情況下還得來個nginx代理。不僅僅這仨,可能牽扯到yum或npm。node等都要下載,對於像我這樣的初學者簡直談之色變,只能祈禱千萬別報錯,不然又是被error折磨的一天~
docker部署
在我一直認為自己只是一個開發人員的時候,領導突然發給我一個嗶站網址,被要求學習使用docker將項目打包成鏡像文件夾上傳給甲方伺服器。說實話我是及其不情願的,這是運維的活啊!但一眼望去,公司哪有運維呢?(領導刷到莫在意哈,我的博客我就要有感必發!),何況我只是實習新手,那就多學多乾吧。
我點開嗶站網址,全長3小時,看了一集完全聽不懂,我心想公司是直接給我一個速成班嗎?無奈,我重新挑選教學視頻。以下是docker部署,就是只需在伺服器上安裝docker,然後傳統所需的環境只要在docker中拉取,最後把其打包成一個鏡像文件夾,如何是跨操作系統,這樣只需在目標伺服器上傳文件夾即可。
2.正式部署
以net core項目為例,有兩中生成鏡像方式,一是在自己電腦打包發佈項目上傳至伺服器再執行鏡像命令;另一種是伺服器統一打包發佈構建鏡像。
Linux
打包發佈構建鏡像都在Linux上,這個我不會,不介紹了
本地
1.說明
此示例基於https項目,需要在目錄中有證書文件和相關代碼。為了簡單,下麵的演示我沒有把與證書相關步驟展示,猿友們在創建項目時可以不勾選https,則與演示步驟一致
此示例的一些命令沒有解釋,我希望是有針對性的寫案例,不想添加解析徒增混雜,命令解釋可見其他博客
2.生成Dockerfile文件
右擊項目生成Dockerfile文件
這是生成的Dockerfile文件,有些命令是給伺服器統一構建鏡像使用的,因為我們在本地所以只保留這幾行命令即可。
將Dockerfile文件設置為始終複製,讓工作/發佈的文件夾中包含它
我們要註意Dockerfile文件中EXPOSE 埠號命令,如果項目的Program指定了urls則必須使用其指定的,否則預設80(這個會單獨介紹,太坑了!)
我看的教學視頻中有提到刪除配置文件的Docker啟動,其實刪除不刪除都無所謂,只要不要使用該選項啟動即可,因為這個需要本地電腦安裝了docker
3.上傳服務
把項目上傳到伺服器中,Dockerfile文件也要存在才行
4.生成鏡像和容器
我們將根目錄切成項目位置(Dockerfile文件所在目錄),執行生成鏡像命令,並查看鏡像列表
執行生成容器命令,並查看所有容器列表(註意,我使用的https,https也需要額外添加證書,這個也會單獨博客,都是坑啊~朋友們可以在創建項目時不勾選http即可)
啟動容器
瀏覽器訪問,nice!
3.參考
感謝以下博主讓我從深坑爬起~
#博客
https://mp.weixin.qq.com/s/JU4hTbsSbNkM5BwfBXUCiA
#視頻
https://www.bilibili.com/video/BV1vC4y1p7Za?p=23&vd_source=6222e02dd83374fd4d8850e5384b16f6