我用asp.net core 部署到docker遇到的問題


1.怎么部署

  我是用文件的形式先發布出來,然后把文件拷貝到服務器上部署到docker中去。

2.端口映射

  根據查找到的資料,dockerfile 是不支持指定映射服務器端口的,只能在run的時候用-p 命令指定。那這不是扯么,跑個run命令還要打一堆命令。所以我用的是docker-compose來運行鏡像。

在docker-compose.yml 文件中指定具體的端口映射

 

 

 

3.靜態文件目錄映射

遇到的錯誤:The path must be absolute. Parameter name: root 

我的代碼:

 

錯誤是由FileProvider報出來的,videopath是從配置文件里面讀取,經排錯,應該是videoPath不是docker里面的路徑引起的。

解決方式:將videoPath目錄配置為一個docker中存在路徑。如:可以在docker發布時用volumes指定好掛載的路徑。

 

4. https 配置

參照網上的配置,在docker-compose.yml中配置  

ASPNETCORE_Kestrel__Certificates__Default__Password,ASPNETCORE_Kestrel__Certificates__Default__Path 兩個參數,但總是報下面這個錯誤

Interop+Crypto+OpenSslCryptographicException: error:2006D080:BIO routines:BIO_new_file:no such file

最后發現原因竟然是雙引號的問題。即enviroment的值不需要引號

 

 

  直接給值就可以了。

 

還有一個是docker-compose.yml需要注意的, context 參數要給出 dockerfile所在的目錄,不能用 . 來表示,否者dockerfile 的ENTRYPOINT 會提示沒有安裝.net core環境,千萬不要

被visualstudio默認生成的docker-compose.yml給欺騙了。。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM