Asp.net core 在Docker中进行调试和发布


准备工作:安装Docker并运行

一,在Docker中调试Asp.net core应用

1,右键项目,添加/Docker支持,项目根目录多自动新增一个名为Dockfile的文件

2,按F5进行高度,首次运行这个过程很漫长,还很有可能不成功,提示信息:C:\Users\Administrator\vsdbg\vs2017u5 exists, deleting,可以如下解决

按提示中的版本到以下地址下载两个文件

https://vsdebugger.azureedge.net/vsdbg-16-3-10904-1/vsdbg-linux-x64.zip

https://vsdebugger.azureedge.net/vsdbg-16-3-10904-1/vsdbg-linux-musl-x64.zip

,把版本号换成使用的版本号。

不过这和在VS中下载一个样,慢得不行,我下好了“16.3.10904.1”版本在以下云盘,需要的自行提取,提取码:2z1p

https://pan.baidu.com/s/1TSXG0GSbTe8iD5OFXMskaw 

下好以后,把vsdbg-linux-x64中的所有文件复制到C:\Users\Administrator\vsdbg\vs2017u5目录。在vs2017u5目录中新建一个子文件夹:linux-musl-x64,把vsdbg-linux-musl-x64中的所有文件复制到该目录。

在linux-musl-x64目录中新建二个txt文件:success_rid.txt以及success_version.txt,编辑success_rid.txt内容为:linux-musl-x64,编辑success_version.txt内容为使用的版本号:16.3.10904.1。

把这两个txt文件复制一份到vs2017u5目录,修改vs2017u5目录中的success_rid.txt内容为:linux-x64。

重新启动调试即可。

二,发布Asp.net core程序到Docker.

1,打开一个命令行,利用docker build指令创建镜像

 docker build -t liu:v1 --force-rm  -f E:/identity/src\IdentityServer/Dockerfile E:/identity

参数说明:

-t:-tag 设置镜像标签,可以用来指定镜像版本。

--force--rm:强制删除临时镜像

-f:指定Dockfile文件地址

E:/identity:上下文根目录,此处为解决方案目录(sln存在目录)

2,以此镜像运行一个容器

使用Docker images 指定查询镜像ID

 

 使用Docker run指令运行一个容器

docker run -v c:\vol:/app/wwwroot/upload -p 5005:80  -it  bea955806474 bash

 

参数说明:

-v: -volum,挂载本地目录到Docker容器。 c:\vol为本地目录,/app/wwwroot/upload为容器目录。由于容器本身不会持久化存储数据,必需挂载到本地目录,以防容器删除后数据丢失。

-p:端口映射。5005为本机端口,80为容器端口

-it:-input-terminal。开启一个新的输入终端。

bea955806474:镜像ID

bash:运行的容器指令,如果Dockerfile没有指定ENTRYPOINT则直接执行该指令,如果有指定,则将该指定加在ENTRYPOINT后。

run完成后,使用Docker ps指令查看正在运行的容器。直接访问http://localhost:5005即可。

 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM