在Docker中部署ASP.NET Core 2.2
2024-09-05 12:06:51
⒈新建一个ASP.NET Core2.2 Web程序
因为Windows的Docker和Linux的Docker有所不同,本次测试采用的是Linux的Docker,因此没有勾选启用Docker支持。
尝试运行下项目
⒉创建Dockerfile文件
在项目的根目录下,添加一个Dockerfile文件,注意文件名。
#添加基础镜像
FROM microsoft/dotnet:2.2-aspnetcore-runtime
#容器中系统的工作空间
WORKDIR /app
#拷贝当前文件夹下的文件到容器中系统的工作空间
COPY . /app
#设置Docker容器对外暴露的端口
EXPOSE 80
EXPOSE 443
#容器中使用 ["dotnet","系统启动的dll"] 来运行应用程序
#使用ENTRYPOINT ["dotnet","系统启动的dll"]
#或使用 CMD ["dotnet","系统启动的dll"]
ENTRYPOINT ["dotnet", "DockerDemo.dll"]
这里我们需要用到官方的镜像:microsoft/dotnet:2.1-aspnetcore-runtime
如果要尝试更小的镜像,可以试试
microsoft/dotnet:2.1-aspnetcore-runtime-alpine
,这镜像使用了alpine
一款精简版极小的linux,但是随之而来的就是阉割了一些功能,实际使用的时候需要测试,比如国际化支持,它默认在这个镜像里面没有开启,需要配置环境变量来开启。
修改Dockerfile属性
⒊发布应用程序
⒋创建Docker镜像
docker build -t dockerdemo:1.0.0 .
⒌运行Docker镜像
docker run --name=dockerdemo -d -p 8000:80 -v /home/fanqi/aspnetcore:/app dockerdemo:1.0.0
*我们可以编写 发布+构建 的脚本。
Windows:
文件名:build.bat
@echo off echo "Windows Docker build" cd ../DockerDemo dotnet publish -c Release -o ../publish cd ../publish echo "publish success" docker build -t dockerdemo:1.0.0 .
Linux:
文件名:build.sh
#!/bin/bash echo Linux Docker build cd ../DockerDemo dotnet publish -c Release -o ../publish cd ../publish echo publish success docker build -t dockerdemo:1.0.0 .
若在linux下执行sh脚本时,遇到错误“-bash: ./build.sh: /bin/bash^M: bad interpreter: No such file or directory“,
请通过vim/vi编辑sh脚本,按:键,输入 set ff=unix
,然后回车、wq保存即可
最新文章
- 高性能 TCP &; UDP 通信框架 HP-Socket v3.3.1
- Jenkins持续集成 &; .NET
- python的ujson与simplejson
- XtraScheduler 日程控件显示自定义标题
- linux 集群配置ssh无密码访问
- Linux 的多线程编程的高效开发经验(转)
- Rust入门篇 (1)
- 【Android开发经验】使用Ant批量打包Android应用全然指南
- Qgis插件开发之Qgis源码学习
- Configuration配置信息管理
- network programming-简单的TCP客户服务器编程
- TCP/IP入门(1) --链路层
- oo第二次博客作业
- jQuery学习之旅 Item9 动画效果
- socket.error: [Errno 99] Cannot assign requested address
- Tensorflow的Queue读取数据机制
- python全栈开发 * 26知识点汇总 * 180709
- [ERROR] InnoDB: Trying to access page number 7 in space 957, space name XXX which is outside the tablespace bounds
- SideBar 选择城市时右侧边上的 选择bar
- hdu 4548 初始化+二分 *
热门文章
- jeecg中自定义dialog,实现窗体的弹出
- Android学习_广播接收器
- 7.1 Spring原理
- Python做域用户验证登录
- 如何评价深度学习框架Keras?
- OpenCV学习笔记(15)——更多的轮廓函数
- 885. Spiral Matrix III
- pandas基础,Serires,Dataframe
- 阶段3 3.SpringMVC·_05.文件上传_4 文件上传之Springmvc方式上传代码
- Python3命名规范