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給欺騙了。。