我用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给欺骗了。。

原文地址:https://www.cnblogs.com/jidanfan/p/11670043.html